ファイル アダプタ構成時の制限事項
ファイル アダプターを使用する場合の制限事項と規則。
ファイル マスクとファイル名の取得
ファイル マスクは、ファイル受信ハンドラが受信場所から取得するファイルの種類を指定する文字列です。 ファイル名は、ファイル送信ハンドラがメッセージを書き込むファイルの名前を指定する文字列です。
ファイル名およびファイル マスクのプロパティには、次の制限が適用されます。
各受信場所または送信ポートに指定できるファイル マスクまたはファイル名は 1 つだけです。
ファイル マスクまたはファイル名と共に完全パスまたはパスの一部を使用することはできません。 ファイル マスクおよびファイル名は、常にパスを除いた名前を表します。
ファイル マスクとファイル名では、大文字と小文字が区別されません。
ファイル名には、次の文字を含めることはできません: <> : / |" ? * ;
ファイル マスクには、次の文字を含めることはできません: <> : / |" ;
予約されたデバイス名 (CON、PRN、AUX、CLOCK$、NUL、COM1、COM2、COM3、COM4、COM5、COM6、COM7、COM8、COM9、LPT1、LPT2、LPT3、LPT4、LPT5、LPT6、LPT7、LPT8、および LPT9) は、ファイル名として使用できません。 また、これらの名前を拡張子と組み合わせて使用することはできません。
Windows ディスク ボリュームでは、既定で 8.3 (8dot3) の名前付け規則が使用され、短いファイル名と長いファイル名が使用されます。 システム以外のディスク ボリュームでは、8dot3 の名前付け規則が無効になり、長いファイル名のみが使用されます。
8dot3 が有効になっている場合、ファイルとそのファイル拡張子は短い名前に変換されます。 たとえば、
testabcdefgh.docx
は にtestab~1.doc
変換されます。 ファイル名が短縮され、ファイル拡張子が から.docx
に短縮されていることにdoc
注意してください。この動作は、ファイル アダプターがファイルを受け取る方法に影響します。 ファイル マスクが に
*.xml
設定されている場合、拡張子と拡張子の両方*.xml
に*.xmln
一致するファイルが取得されます。ディスクで 8dot3 名前付け規則が有効になっているかどうかを確認するには、管理者としてコマンド プロンプトを開き、「」または
fsutil 8dot3name query d:
「」などと入力fsutil 8dot3name query c:
します。 サンプル出力は次のようになります。C:\WINDOWS\system32>fsutil 8dot3name query c: The volume state is: 0 (8dot3 name creation is enabled). The registry state is: 2 (Per volume setting - the default). Based on the above two settings, 8dot3 name creation is enabled on c:
ファイル アダプターは FindFirstFile 関数を使用します。 この関数には、短いファイル名と長いファイル名を持つ検索結果が含まれます。 フォルダー内の短いファイル名と長いファイル名を表示するには、コマンド プロンプトを開き、フォルダーに移動して、「」と入力します
dir /x
。 コマンド プロンプトで、「 」と入力dir c:\foldername /x
することもできます。ボリュームの 8dot3name 設定を変更した場合、新しいファイルでは新しい設定が使用されます。 既存のファイルは、移動されるまで名前を保持します。
目的のファイルのみを取得し、高負荷時にパフォーマンスを向上 (オーバーヘッドを軽減) するには、8dot3name が無効になっているボリュームを使用するようにファイル アダプターを構成することをお勧めします。
ファイル パス、ファイル マスク、およびファイル名の長さの合計 (マクロによる代入を除く) は 256 文字以下にしてください (これは、メッセージ ボックス データベースの制限です)。
ファイル パスを "
\\
?"で始めることはできません。割り当てられたネットワーク ドライブ名は、ユーザー セッションに基づいているため、ファイル パスでは使用できません。
BizTalk メッセージング エンジンでは、上記の項目を使用して、デザイン時に常にファイル名およびファイル マスクのプロパティを検証します。 また、ファイル アダプタでは、アダプタが動的ポートでメッセージを送信する場合、実行時にファイル名およびファイル マスクのプロパティを検証します。
注意
ファイル アダプタでは、システム ファイルまたは読み取り専用のファイルは取得されません。 ディスク上のファイルのみが取得され、デバイス ファイルは取得されません。
ファイル名でのマクロの使用
一連の定義済みマクロを使用して、ファイル送信ハンドラがメッセージを書き込むファイルを、動的に作成できます。 ファイル システム上にファイルを作成する前に、ファイル送信ハンドラによって、ファイル名に含まれるすべてのマクロが個別の値に置き換えられます。 1 つのファイル名で複数の異なるマクロを使用できます。
ファイル名のマクロは、BizTalk エクスプローラー オブジェクト モデルを使用したファイル送信ハンドラーの構成時に使用できます。
次のいずれかの条件に当てはまる場合、ファイル送信ハンドラはマクロを値に置き換えません。
対応するシステム プロパティが設定されていない場合
マクロのスペルが間違っている場合
マクロの値に、ファイル名には無効な記号が含まれている場合
上記のいずれかの条件に当てはまる場合、ファイル送信ハンドラは、ファイル名に含まれるマクロを変更しません (例、Myfile_%MessageID%.xml)。
次の表は、サポートされているマクロと、ファイル送信ハンドラによってそのマクロがどのような形式に置換されるのかを示しています。
マクロ名 | 代入値 |
---|---|
%datetime% | YYYY-MM-DDThhmmss 形式の協定世界時 (UTC) の日時 (例、1997-07-12T103508)。 |
%datetime_bts2000% | YYYYMMDDhhmmsss 形式の UTC 日時。sss は秒およびミリ秒を表します (たとえば、199707121035234 は 1997 年 7 月 12 日 10 時 35 分 23 秒 400 ミリ秒を表します)。 |
%datetime.tz% | ローカルの日時に GMT のタイム ゾーンを加えた YYYY-MM-DDThhmmssTZD 形式の日時 (例、1997-07-12T103508+800)。 |
%DestinationParty% | 送信先パーティの名前。 この値は、メッセージ コンテキスト プロパティ BTS.DestinationPartyから取得されます。 |
%DestinationPartyQualifier% | 送信先パーティの修飾子。 この値は、メッセージ コンテキスト プロパティ BTS.DestinationPartyQualifierから取得されます。 |
%MessageID% | BizTalk Server 内のメッセージのグローバル一意識別子 (GUID)。 値は、メッセージ コンテキスト プロパティ BTS から直接取得されます 。MessageID。 |
%SourceFileName% | ファイル アダプタが読み取るメッセージが存在するファイルの名前。 ファイル名には、拡張子は含まれますが、ファイル パスは含まれません (例、Sample.xml)。 このプロパティを置き換えると、ファイル アダプターは FILE に格納されている絶対ファイル パスからファイル名を抽出 します。ReceivedFileName コンテキスト プロパティ。 コンテキスト プロパティに値がない場合 (たとえば、ファイル アダプター以外のアダプターでメッセージを受信した場合)、マクロは置換されず、そのままファイル名に残ります (たとえば、C:\Drop\%SourceFileName%) 。 メモ: このマクロを正しく実装するには、出力メッセージが受信メッセージと同じメッセージであることが必要です。 |
%SourceParty% | ファイル アダプタが受信したメッセージの受信元パーティの名前。 メモ: このマクロを正しく実装するには、出力メッセージが受信メッセージと同じメッセージであることが必要です。 |
%SourcePartyQualifier% | ファイル アダプタが受信したメッセージの受信元パーティの修飾子。 メモ: このマクロを正しく実装するには、出力メッセージが受信メッセージと同じメッセージであることが必要です。 |
%time% | hhmmss 形式の UTC 時刻。 |
%time.tz% | ローカルの日付に GMT のタイム ゾーンを加えた hhmmssTZD 形式の日付 (例、124525+530)。 |
受信フォルダーと宛先の場所のプロパティの概要
ファイルの受信場所は、ファイル受信ハンドラーで読み取るファイルが存在するファイル システムまたはネットワーク共有上のフォルダーのパスを含む文字列です。 ファイルの送信先は、ファイル送信ハンドラーで書き込むファイルが存在するファイル システムまたはネットワーク共有上のフォルダーのパスを含む文字列です。
受信フォルダーおよび送信先のプロパティには、次の制限が適用されます。
ユーザーのプロパティを指定する場合、その時点でファイル システムまたはネットワーク共有上のファイル パスが存在する必要はありません。
ファイル パスは、絶対パスである必要があります。
ファイル パスは、汎用名前付け規則 (UNC) 形式 (\\server>\<<share> など) を使用して指定できます。
ファイル パスが UNC 形式の場合、サーバー名には次の文字を含めてはなりません: ' ~ ! @ # $ ^ & * ( ) = + [ ] { } \ | ;: ' " 、 <> / ? ;
ファイル パスのどの部分にも親フォルダー記号 (\..\) および現在のフォルダー記号 (\.\) を使用できません。
ファイル パスでは、大文字と小文字が区別されません。
ファイル パスには、次の文字を含めることはできません: <> : / |" ? * ;
予約されたデバイス名 (CON、PRN、AUX、CLOCK$、NUL、COM1、COM2、COM3、COM4、COM5、COM6、COM7、COM8、COM9、LPT1、LPT2、LPT3、LPT4、LPT5、LPT6、LPT7、LPT8、および LPT9) は、ファイル パスでは使用できません。
ファイル パス、ファイル マスク、またはファイル名の長さの合計 (マクロでの代入を除く) は 256 文字以下にしてください (これはメッセージ ボックス データベースの制限です)。
ファイル アダプターは、ファイル パスの Unicode 仕様 (たとえば、"\\?\") をサポートしません。
受信フォルダーのプロパティのみに、次の制限が適用されます。
受信フォルダーのプロパティには、シンボリック リンクのある Microsoft Windows NT の分散ファイル システムを使用しているフォルダーを設定しないでください。 Windows NT の分散ファイル システムを使用している場合、ファイル アダプターの受信場所には、直接的なネットワーク パスのフォルダーのみを使用できます。
ドキュメントが UNC パスに送信され、ファイル アダプターの受信場所でサーバーが受信するドキュメントが複数ある場合、その UNC パスに送信されたドキュメントの大半は、1 台のサーバーのみで取得および処理されます。 ファイル名の変更の詳細については、「ファイル アダプター」の「ファイル受信アダプター」セクション を参照してください。
送信フォルダーのプロパティのみに、次の制限が適用されます。
Microsoft Windows Vista など、サーバーでないオペレーティング システムでファイル アダプターを実行している場合、すべてのメッセージを同時にバッチ処理するために必要なオペレーティング システム リソースが不足する場合があります。
ファイル アダプターでは、上記のルールを使用して、デザイン時にファイル パスを検証します。 さらに、ファイル アダプターを使用する動的ポート経由でメッセージを送信する場合、実行時にメッセージを検証します。