ファイル アダプタ

ファイル アダプタを使用すると、Microsoft BizTalk Server との間でファイルを入出力できます。 ファイル アダプターは、受信アダプターと送信アダプターの 2 つのアダプターで構成されます。

このセクションでは、ファイル受信アダプタとファイル送信アダプタ両方のワークフローおよびバッチ処理のサポートについて説明します。

ファイル受信アダプター

ファイル受信アダプターを使用してファイルからメッセージを読み取り、サーバーに送信します。 受信アダプターはファイルを読み取り、BizTalk Message オブジェクトを作成して、BizTalk Serverがメッセージを処理できるようにします。 ファイルからの読み取り中に、アダプターはファイルをロックして、ファイルの内容を変更できないようにします。

Note

ファイル受信アダプターでは、読み取り専用のファイルまたはシステム ファイルは取得されません。 パフォーマンスを向上させるには、これらのファイルを含まないファイル マスクを使用してください。

ファイル受信アダプターでは、ローカル ファイル システムまたはネットワーク共有にあるファイルからメッセージが読み取られます。 ネットワークの問題でネットワーク共有上の指定場所を使用できない場合、読み取り操作を再試行します (この再試行回数は BizTalk Server 管理コンソールで構成できます)。 メッセージが読み取られ、BizTalk メッセージング エンジンによって正常に受け取られると、受信アダプターは、そのファイルをファイル システムまたはネットワーク共有から削除します。 メッセージが読み取られても、パイプラインでそのメッセージが正常に処理されなかった場合は、そのメッセージを保留キューに書き込んだ後、ファイルをファイル システムまたはネットワーク共有から削除します。 メッセージをメッセージ ボックス データベースに送信できないか、保留にできない場合、元のファイルはファイル システムやネットワーク共有から削除されません。

ファイル受信アダプターを構成して、ファイルを処理しているときに、ファイル名を変更することもできます。 ファイル名を変更する場合は、受信場所がシャットダウンされて再起動されたときに、受信アダプターが重複するメッセージを生成しないことを確認する必要があります。 ファイル名の変更は、ファイル受信場所の構成可能なオプションです。 既定では、ファイル名の変更は無効になっています。 ファイル名の変更が有効になっている場合、ファイル受信アダプターは、そのファイルに拡張子 .BTS-WIP を付加します。 受信アダプターは、受信場所にある、ファイル名が変更されたファイルからメッセージを読み取り、読み取ったメッセージをサーバーに送信します。 ファイルを正常に送信すると、名前が変更されたファイルをファイル システムまたはネットワーク共有から削除します。 メッセージが読み取られても、パイプラインでの処理に失敗すると、そのメッセージをメッセージ ボックス データベースの保留キューに書き込んだ後、名前が変更されたファイルをファイル システムまたはネットワーク共有から削除します。

Note

ファイル名を変更しても、パフォーマンスには影響しません。

ファイル受信アダプターがメッセージを正常に読み取っても、そのメッセージをメッセージ ボックス データベースに正常に保存できなかった場合は、名前が変更されたファイルは .BTS-WIP 拡張子の付いていない元の名前に戻されます。 ファイル名変更オプションが有効になっている場合、受信アダプターは拡張子 .BTS-WIP の付いたファイルは読み取らないことに注意してください。

ファイル変更通知とポーリングの使用

ファイル受信アダプターでは、Windows ファイル変更通知を使用して、指定されたディレクトリまたは共有からファイルを取得するタイミングを判定します。 指定されたディレクトリまたは共有へのファイルの書き込みが完了する前にファイル受信アダプターが Windows ファイル変更通知を受け取ると、ファイルがロックされ、ファイル受信アダプターはファイルを取得しません。 このシナリオでは、ファイル受信アダプターは、ファイル受信場所を構成するときに使用できる [詳細設定] ダイアログ ボックスで指定されたポーリング間隔 (ミリ秒) で、指定されたディレクトリまたは共有をアクティブにポーリングします。 ファイル受信アダプターでは、ディレクトリまたは共有をポーリングし、ロックが解除されたファイルを共有から取得すると、このファイルをメッセージ ボックス データベースに送信します。

Note

BizTalk Server ファイル アダプターは、NTFS ファイル システムでのみテストされており、サポートされています。

ファイル受信アダプターは、次の Windows ファイル変更通知を受け取ると、指定されたディレクトリまたは共有からファイルを取得します。

FILE_NOTIFY_CHANGE_ATTRIBUTES

監視対象のディレクトリまたはサブツリーで属性が変更されると、変更通知の待機操作から制御が戻ります。

FILE_NOTIFY_CHANGE_FILE_NAME

監視対象のディレクトリまたはサブツリーでファイル名が変更されると、変更通知の待機操作から制御が戻ります。 ファイル名の変更とは、ファイル名の変更、作成、削除を指します。

FILE_NOTIFY_CHANGE_SIZE

監視対象のディレクトリまたはサブツリーでファイル サイズが変更されると、変更通知の待機操作から制御が戻ります。 オペレーティング システムでファイル サイズの変更が検出されるのは、ファイルがディスクに書き込まれたときだけです。 拡張キャッシュを使用するオペレーティング システムでこの変更が検出されるのは、キャッシュが十分にフラッシュされたときだけです。

FILE_NOTIFY_CHANGE_LAST_WRITE

監視対象のディレクトリまたはサブツリーでファイルに対する最終書き込み日時が変更されると、変更通知の待機操作から制御が戻ります。 オペレーティング システムでファイルに対する最終書き込み日時の変更が検出されるのは、ファイルがディスクに書き込まれたときだけです。 拡張キャッシュを使用するオペレーティング システムでこの変更が検出されるのは、キャッシュが十分にフラッシュされたときだけです。

FindFirstChangeNotification 関数の詳細については、「」を参照してくださいhttps://msdn.microsoft.com/library/windows/desktop/aa364417(v=vs.85).aspx

ファイル受信アダプターのバッチ処理のサポート

ファイル受信アダプターでは、メッセージがサーバーにバッチ単位で送信されます。 ファイル受信アダプターは、まず、受信場所ごとに 1 つのバッチを作成し、その受信場所で使用できる読み取り可能なファイルをすべて収集します。 使用可能なファイルをすべて収集するか、収集しているファイルの容量が最大バッチ サイズを超えると、受信アダプターによってバッチがメッセージ ボックス データベースに送信されます。

バッチ内のすべてのメッセージが正常に読み取られ、メッセージ ボックス データベースに送信されると、ファイル受信アダプターは対応するファイルを受信場所から削除します。 バッチ内のメッセージの一部の処理に失敗すると、失敗したメッセージを保留し、対応するファイルを受信場所から削除します。 一部またはすべてのメッセージをメッセージ ボックス データベースに保存できなかった場合は、バッチ操作全体がロールバックされ、対応するすべてのファイルが変更されずに受信場所に残されます。

ファイル送信アダプター

ファイル送信アダプターは、メッセージ ボックス データベースのメッセージを、指定された送信先アドレス (URL) に転送します。 ファイルのパスとファイル名で構成される URL は、メッセージ コンテキストのプロパティに関連するワイルドカード文字を使用して定義します。 ファイル送信アダプターは、ワイルドカード文字を実際のファイル名に解決してから、メッセージをファイルに書き込みます。

ファイル送信アダプターでは、メッセージをファイルに書き込んでいるときに、BizTalk メッセージ オブジェクトのボディ部からメッセージ コンテンツが取得されます。 BizTalk メッセージ オブジェクトのボディ部以外のメッセージ部分は無視されます。 メッセージがファイルに書き込まれると、そのメッセージがメッセージ ボックス データベースから削除されます。 ファイルをファイル システムに書き込む場合、直接書き込むか、ファイル システムのキャッシュを使用します。キャッシュを使用すると、特に大きなファイルの場合は、パフォーマンスを向上させることができます。

ファイル送信アダプターのバッチ処理のサポート

ファイル送信アダプターは、メッセージ ボックス データベースからメッセージのバッチを取得し、ファイル システムまたはネットワーク共有上の送信先にあるファイルに書き込みます。 ファイル送信アダプターのバッチ サイズは構成できず、あらかじめ 20 に設定されています。 BizTalk サーバーがバッチ内のメッセージの一部をファイルに書き込むことができなかった場合は、再試行処理用に、システムからメッセージ ボックス データベースに書き込むことができなかったメッセージが再送信されます。 再試行間隔と再試行回数は、BizTalk Server 管理コンソールで構成できます。

このセクションの内容