データストリーミング転送のたびに、次のように 2 つの OTD のコラボレーションが発生します。
一方が「ストリームアダプタ」を提供する。
もう一方がそのストリームアダプタのコンシューマとなり、データ転送を実行する。
InputStream の実装で、負の数値を引数として持つ skip() をサポートしてください。
ここでは、これら 2 つのデータストリーミング OTD がどのように動作してデータの転送を実現するかについて説明します。
Batch Adapter の各 OTD では、任意の OTD がデータストリーミング転送に関与できるように、ストリームアダプタノードを公開しています。ノードの名前は、InputStreamAdapter と OutputStreamAdapter です。ストリームアダプタは、Java CAPS IDE のドラッグ&ドロップ機能を使用して関連付けることができます。
OTD の「InputStreamAdapter」ノード (強調表示) と「OutputStreamAdapter」ノードが、データストリーミングに使用されます。この機能は次のように動作します。
ストリームアダプタコンシューマ: FTP OTD とレコード処理 OTD は、ストリームアダプタの「コンシューマ」にのみなることができます。したがって、そのストリームアダプタノードは「書き込み専用」です。ノードの値は、「設定」 (変更) できます。
ストリームアダプタプロバイダ: ローカルファイル OTD は、ストリームアダプタの「プロバイダ」にのみなることができるため、そのストリームアダプタノードは「読み取り専用」です。ノードの値は、「取得」できるだけです。
ローカルファイル OTD は常にストリームプロバイダであり、FTP OTD とレコード処理 OTD はコンシューマです。
「InputStreamAdapter」ノードと「OutputStreamAdapter」ノードの使用は、次に示すように「ペイロード」ノードの使用と代替関係にあります。
データストリーミングを行う場合は、これらのストリームアダプタノードを使用してデータを転送します。
データストリーミングを行わない場合は、「ペイロード」ノードを使用してデータを転送します (ペイロードデータ転送)。
データストリーミングを設定すると、ペイロードデータ転送での、「ペイロード」ノードからの「読み取り」を行うすべての処理で、「InputStreamAdapter」ノードが要求されます。これと同じロジックにより、ペイロードデータ転送での、「ペイロード」ノードへの「書き込み」を行うすべての処理で、データストリーミング用の「OutputStreamAdapter」ノードが要求されます。
ストリームアダプタノードを OTD の get() および put() メソッドと混同しないでください。たとえば、BatchFTP OTD のクライアントインタフェース get() メソッドは、ペイロード転送中に「ペイロード」ノードに「書き込み」を行うため、データストリーミングでは書き込み先となる「OutputStreamAdapter」ノードを要求します。これに対し、レコード処理 OTD の get() メソッドは、ペイロード転送中に「ペイロード」ノードから「読み取り」を行うため、データストリーミングで get() は読み取り元となる「inputStreamAdapter」ノードを要求します。
データをローカルファイルシステム (BatchLocalFile) からレコード処理 (BatchRecord) 設定に転送します。このシナリオでは、「InputStreamAdapter」OTD ノードを使用します (「データストリーミングのシナリオ」を参照)。
データをレコード処理 (BatchRecord) 設定からローカルファイルシステム (BatchLocalFile) に転送します。「OutputStreamAdapter」OTD ノードを使用します (「データストリーミングのシナリオ」を参照)。
データをローカルファイルシステム (BatchLocalFile) からリモート FTP (BatchFTP) 設定に転送します。このシナリオでは、「InputStreamAdapter」OTD ノードを使用します (「データストリーミングのシナリオ」を参照)。
データをリモート FTP サーバー (BatchFTP) からローカルファイルシステム (BatchLocalFile) に転送します。「OutputStreamAdapter」OTD ノードを使用します (「データストリーミングのシナリオ」を参照)。
ここでは、ストリーム消費アダプタの使用方法について説明します。