遅延ロードまたは即時ロードを使用したマルチメディア・コンテンツのロードについて

遅延ロードについて

遅延ロードおよび即時ロードは、どちらもデータベース内のinterMediaオブジェクトにコンテンツをロードする際、interMediaビジネス・コンポーネント・ドメイン・クラスをどのように使用するかについて示しています。遅延ロードでは、ロード処理を次の2つのステップに分けることができます。

  1. マルチメディア・コンテンツのソースを指定します。
  2. postChanges()またはcommit()をコールし、データをロードします。

この2つのステップは、連続して実行する必要はありません。ステップの間に他の操作を追加することもできます。 実際のロード操作が2番目のステップまで行われないため、遅延ロードと呼ばれます。遅延ロードは、新規レコードを表に挿入する際に使用すると便利です。interMediaのビジネス・コンポーネント・ドメインには、遅延ロード用に、インタフェースが1つと実装クラスが3つ存在します。

この3つのクラスは、コンテンツをロードする際の代表的なソースを対象としています。 ただし、この3つ以外のソースからコンテンツをロードする場合は、OrdContentSourceインタフェースを実装し、独自の実装クラスを指定する必要があります。

遅延ロードを使用する場合、実際のロードはpostChanges()またはcommit()コールの後で行われる点に注意してください。また、ロード後にinterMediaドメイン・クラスのsetProperties()がコールされることも理解しておく必要があります。

即時ロードについて

遅延ロードとは対照的に、即時ロードでは、ソースからデータベース内のinterMediaオブジェクトへ、1つのステップでコンテンツがロードされます。即時ロードを行うには、interMediaデータベース・オブジェクトに初期化されたBLOBロケータが必要です。したがって、即時ロードは、初期化されたBLOBロケータのある既存のinterMediaデータベース・オブジェクトを更新する場合のみ使用できます。

他のコンテンツ・ソースを使用した遅延ロードについて

必要に応じ、独自のOrdContentSource実装を記述できます。たとえば、URLからデータベースへマルチメディア・コンテンツをロードする必要がある場合は、URLSourceクラスを記述します。

注意: URLからバイト配列にマルチメディア・コンテンツを読み込んだ後、OrdByteArraySourceを使用してコンテンツをデータベースにロードすることも可能ですが、大規模なコンテンツの場合は、コンテンツをメモリー内のバイト配列に格納することは適切ではありません。


ファイルのコンテンツを含むレコードの挿入
バイト配列のコンテンツを含むレコードの挿入
OrdHttpUploadFileSourceのコンテンツを含むレコードの挿入

ファイルのコンテンツでレコードを更新
バイト配列のコンテンツでレコードを更新
入力ストリームのコンテンツでレコードを更新

その他のコンテンツ・ソースを使用したマルチメディア・コンテンツのロード

 

Copyright © 1997, 2004, Oracle. All rights reserved.