2.9.5. Fileバインディング

File BCは、ローカルファイルシステムからファイルを読み込む機能、およびファイルの出力機能を提供します。
File BC 動作概要


図2.9.5-1

2.9.5.1. サービスユニットのファイル構成

File BC のサービスユニットのフォルダ構成は下図の通りです。


図2.9.5.1-1

File BC のサービスユニットに含まれるファイルについて以下に説明します。
File BC のSUのファイル
表2.9.5.1-1
項目
説明
/META-INF/schema
メッセージ検証用スキーマを格納するフォルダです。
/META-INF/jbi.xml
サービスユニットの配備記述子です。
endpoints.xml
File BC のエンドポイントの設定が記述されます。
*.su
サービスユニットの管理ファイルです(編集不可)。

2.9.5.2. エンドポイントの設定

SUエディタを使用して File BC の基本的な設定をする方法を説明します。


図2.9.5.2-1

Memo
 エンドポイントを追加する方法については、 2.7.1. エンドポイントの追加 をご覧下さい。

基本設定項目
表2.9.5.2-1
設定項目
説明

エンドポイント一覧
SUで定義されたエンドポイントの一覧を表示します。
 
基本設定
エンドポイントロール
ローカルファイルシステムを監視し入力ファイルの内容を NMR に送信する場合(Inbound)はコンシューマを設定します。
    NMR からのメッセージをローカルファイルシステムに出力する場合(Outbound)はプロバイダを設定します。
プロバイダ、コンシューマから選択 [必須]
サービス名
エンドポイントロールがプロバイダの場合、エンドポイントが提供するサービス名を指定します。
   エンドポイントロールがコンシューマの場合、呼び出し先となるエンドポイントのサービス名を指定します。
QName(名前空間、ローカル名) [必須]
インタフェース名
エンドポイントロールがプロバイダの場合、エンドポイントが提供するインタフェース名を設定します。
   エンドポイントロールがコンシューマの場合、呼び出し先となるエンドポイントのインタフェース名を指定します。
QName(名前空間、ローカル名)[必須]
ESBインスタンス名
分散ESB機能を使用する場合にのみESBインスタンス名を指定します。 その他の場合は空欄にします。
文字(A-Z、a-z)、数字(0-9)、ハイフン(-)、点(.)、下線(_)の組み合わせ [任意]
オペレーション一覧
オペレーションを設定します。
 
メッセージエクスチェンジハンドラ
メッセージエクスチェンジハンドラを設定します。
 
メッセージコンバートハンドラ
メッセージコンバートハンドラを設定します。
 
共通設定
共通項目(セキュリティ認証、トランザクション、メッセージ送信優先度、エラーリトライ)を設定します。
 
オプション一覧
オプションを設定します。
 

Memo
  エンドポイントのサービス名とエンドポイント名の設定が他のエンドポイントと重複しないようにしてください。

ファイルに関する設定項目
表2.9.5.2-2
設定項目
説明

File BCの設定
入力ファイル格納ディレクトリ
入力ファイルを格納するためのディレクトリを指定します。
【マルチバイト文字列指定可】
サーバのディレクトリパス[必須]
出力ファイル格納ディレクトリ
出力ファイルを格納するためのディレクトリを指定します。
【マルチバイト文字列指定可】
サーバのディレクトリパス[必須]
処理ディレクトリ
処理済の入力ファイルを退避するディレクトリを指定します。
【マルチバイト文字列指定可】
サーバのディレクトリパス[必須]
入力ファイルパターン
ファイル名を正規表現で指定することにより、入力対象のファイルを制限することができます。
正規表現として正しくない指定を行うと、入力対象ファイルの制限は行われません。
正規表現の詳細についてはjava.util.regex.Patternのドキュメントを参照してください。
例.
   拡張子 .txt のみを対象とする場合: .*\.txt
【マルチバイト文字列指定可】
正規表現の文字列[任意]
ポーリング間隔時間
ポーリング間隔時間を秒単位で指定します。
正の整数[任意]
   デフォルトは"2"
ファイル取得処理のリトライ回数
Inbound側で入力ファイルを取得処理失敗の場合、リトライ次数。(outbound側で入力できない)
数値(0〜65535)[任意]
   デフォルトは"0"
   ※コンシューマの場合のみ
ポーリング一回で処理するファイル数
ポーリング一回で処理するファイル数を指定します。
   入力が"0"の場合、endpoints.xmlに"1"を生成します。
正の整数[任意]
   デフォルトは"3"
出力ファイル名重複時の動作
出力先に同名のメッセージファイルがあれば、ファイルシステムに保存されるメッセージファイル の最後に新メッセージを追加して保存するかどうかを指定します。
appendの場合は追記、overwriteの場合は上書き、errorの場合は同名ファイルを存在する時、エラーを返信する。
append、overwrite、errorから選択[任意]
   デフォルトは"overwrite"
出力ファイルの世代数
出力ファイルの世代数を指定します。
出力ファイル名重複時の動作はoverwriteとerrorを選択する場合、グレーアウトして入力不可にする。
数値(0〜2147483647)[任意]
   デフォルトは"0"
出力ファイルのローテーションサイズ
出力ファイルのローテーションサイズを指定します。(単位:MB)
出力ファイル名重複時の動作はoverwriteとerrorを選択する場合、グレーアウトして入力不可にする。
正の整数[任意]
   デフォルトは"10"
メッセージ処理モード
FileBCの実行モードを指定します。
制御モードで実行する場合、メッセージ処理モードの値はcontrolとします。
普通モード(制御モードではない)で実行する場合、メッセージ処理モードの値はnormalとします。
control以外の値がセットされたら、普通モードとします。
詳細は2.9.5.15. メッセージ処理モードを参照してください。
control、normalから選択[任意]
   デフォルトは"normal"
※ 入力ファイル格納ディレクトリ、出力ファイル格納ディレクトリ、処理ディレクトリの3つのディレクトリは異なる設定値を指定してください。
   ※ 妥当性チェックを行うため、問題がある項目名が赤色となり、正しく修正すると、項目名が黒くなります。 詳細は、2.8. 妥当性チェックを参照してください。
   ※ コンシューマでエンドポイントロールを指定する場合、参照をクリックすると、SU-エンドポイント一覧ダイアログが表示されます。このダイアログを利用して、カレントサービスアセンブリプロジェクトに存在しているサービスユニットに関するサービス名やインタフェース名などの情報を再利用できます。


図2.9.5.2-2

2.9.5.3. オペレーション設定

 オペレーション一覧追加をクリックし、オペレーションを追加します。
 SUエディタにおける参照をクリックしてSU-エンドポイント一覧ダイアログからサービスユニットとエンドポイントを指定する場合、オペレーション一覧にそれらの指定情報が表示されます。オペレーションリストから、1つのオペレーションを選択してオペレーション設定情報を再利用できます。


図2.9.5.3-1

オペレーションの設定項目
表2.9.5.3-1
項目
説明

オペレーション名
エンドポイントロールがプロバイダの場合、エンドポイントが提供するオペレーション名を指定します。
   エンドポイントロールがコンシューマの場合呼び出し先となるエンドポイントのオペレーション名を指定します。
QName(名前空間、ローカル名)
   [必須]
メッセージ交換方式
使用するメッセージ交換方式を指定します。
   コンシューマの場合、プロバイダの提供するメッセージ交換方式を指定してください。
in-only、 in-out、robust-in-only から選択 [必須]
スキーマファイル インプット/アウトプット 対象SUフォルダのMETA-INFフォルダのschemaフォルダ配下にあるスキーマファイルの相対パスを指定します。
指定したスキーマファイルは、後述のインプット検証/アウトプット検証を選択することで実行時のメッセージ検証に利用することができます。
選択しなかった場合も、XSLT SE による変換の定義の際のインプット/アウトプットスキーマとして利用することができます。    [メッセージ交換方式を指定した場合のみ設定可能]
参照
(インプット/アウトプット)
スキーマファイルの選択ダイアログを開きます。
スキーマファイルを選択すると、その相対パスがインプットおよびアウトプットのファイルのテキストボックスに表示されます。
利用方法については、[2.7.7. スキーマファイルの設定] を参照して下さい。
 
検証実行 インプットの検証実行 実行時に、インプットで指定したスキーマファイルでのメッセージの検証を実施します。
   選択時には、スキーマファイルのインプットの指定は必須項目となります。
   [メッセージ交換方式を指定した場合のみ設定可能]
デフォルトは非選択 [任意]
アウトプットの検証実行 実行時に、アウトプットで指定したスキーマファイルでのメッセージの検証を実施します。
   選択時には、スキーマファイルのアウトプットの指定は必須項目となります。
   [メッセージ交換方式を指定した場合のみ設定可能]
デフォルトは非選択 [任意]
入力ファイルのタイプ
NormalizedMessageにデータを格納する際の形式を指定します。xmlを選択するとxml形式でContentに格納します。Attachmentを選択するとバイナリデータとしてAttachmentに格納します。
xml、attachmentから選択[任意]
   デフォルトは"xml"
出力ファイルのタイプ
NormalizedMessageからデータを取得する際の形式を指定します。xmlを選択するとxml形式でContentから取得します。Attachmentを選択するとバイナリデータとしてAttachmentから取得します。
xml、attachmentから選択[任意]
   デフォルトは"xml"
出力ファイル名のプレフィックス
出力ディレクトリにファイルを出力する際のファイル名のプレフィックスを指定します。
【マルチバイト文字列指定可】
任意の文字列[任意]
   デフォルトは"out"
出力ファイルの拡張子
出力ディレクトリにファイルを出力する際のファイルの拡張子を指定します。
【マルチバイト文字列指定可】
任意の文字列[任意]
   デフォルトは"xml"
ファイルのエンコーディング
ファイルのエンコーディングを指定します。
下記の値から選択[任意]:
   UTF-8
   UTF-16
   ISO-8859-1
   EUC-JP
   Shift_JIS
   ISO-2022-JP
   BIG5
   GB2312
   None

   デフォルトは"UTF-8"
エンコーディング変換時にXML宣言を更新する
XML宣言中の文字エンコードの指定をメッセージのエンコーディングに
合わせて変更するかどうか、または省略するかどうかを指定します。
下記の値から選択[任意]:
   true
   false
   omit

   デフォルトは"true"
出力ファイルパターン
ファイル出力するとき、ファイル名文字列置換用パターンを指定します。
[2.9.5.16. ファイル名のパターン]でパターンに利用可能な特殊文字を説明します。
パターンの特殊文字を含む文字列[任意]
コマンド設定
外部コマンドを指定します。
   外部コマンドの設定は「外部コマンドの設定項目」で説明します。
 


図2.9.5.3-2

外部コマンドの設定項目
表2.9.5.3-2
項目
説明

外部コマンド
絶対パス情報を含む実行コマンドを指定します。引数に%f、%pを使用することができます。コマンドを実行するときに、%fはFile BCから出力されるファイル名、%pはFile BCから出力されたファイルのパスに置き換えられます。実行コマンドパス又は出力先パスにスペースを含む場合には、それぞれを””で囲む必要があります。
【マルチバイト文字列指定可】
文字列[必須]
タイムアウト時間
コマンドの実行タイムアウト時間を指定します。
整数[任意]
   秒[単位]
   デフォルトは"3"
ログ出力
外部コマンドの出力情報をログに出力するかどうかを指定します。
true、falseから選択[任意]
   デフォルトは"false"
ログ出力ディレクトリ
外部コマンドの出力情報を保存するディレクトリを指定します。
【マルチバイト文字列指定可】
サーバのディレクトリパス[任意]
   デフォルトは<ESB_LOG\filebc_exec>: Standard/Enterprise版のアドバンスモードの場合には${com.nec.webotx.instanceRoot}/logs/tpsystem/{apg}/{pg}/filebc_exec
   となり、その他の場合は${com.nec.webotx.instanceRoot}/logs/esb/filebc_execとなります。
コマンド実行タイミング
コマンドを実行する段階を指定します。セット可能の値は「preGet」、「postGet」、「prePut」、「postPut」。その以外の値はエラーとします。
下記の値から選択[任意]:
   preGet
   postGet
   prePut
   postPut

   デフォルトは"postPut"
メッセージ処理の状態
異常時に実行するコマンドか、正常時に実行するコマンドかを標識します。メッセージ処理の状態の意味はメッセージ処理の状態です。 ME作成した後、メッセージ処理の状態の値はMEの状態と同じであす。セット可能の値は「success」と「error」と「both」です。その以外の値はエラーとします。 「both」はメッセージ処理の状態にかかわらず、異常の時も正常の時もこのコマンドを実行します。
下記の値から選択[任意]:
   success
   error
   both

   デフォルトは"both"
設定例:
Internet Explorerで出力ファイルを表示する場合には外部コマンドに以下を入力します。
"C:\Program Files\Internet Explorer\ iexplore.exe" "%p\%f"

2.9.5.4. セキュリティ認証の設定

セキュリティ認証を ON にし、設定 をクリックすると、セキュリティ認証詳細設定ダイアログが表示されます。


図2.9.5.4-1

表2.9.5.4-1
項目
説明

エンドポイント名のURL表記
エンドポイントをURL表記した値。リソース管理に用いられます。
http://webotxesb/<BC名>/エンドポイント名
省略した場合、ESB内部で自動生成されます。
エンドポイントの認証の設定
OFFにした場合はエンドポイントの認証を行いません。
 
エンドポイントのID
認証に利用するIDを設定します。
文字列[必須]
パスワード
認証に利用するパスワードを設定します。パスワードは暗号化とします。
文字列[任意]
ログインモジュールの設定を行う
ログインモジュールの設定を行います。
任意の文字列[任意]
  • ESBSECUREMASTERRealm
  • ESBDefaultCustomRealm
デフォルト値:ESBSECUREMASTERRealm
エンドポイントの認可の設定
OFFにした場合はエンドポイントの認可を行いません。
 
認可に用いる認証情報
認可に利用する認証情報を設定します。
コンシューマの場合
  • consumer
プロバイダの場合
  • client
  • consumer
  • provider
Principalの識別子
Principalの識別子を設定します。
任意の文字列[任意]

2.9.5.5. トランザクションの設定

[2.7.2. トランザクションの設定] を参照して下さい。

2.9.5.6. メッセージ送信優先度の設定

[2.7.3. メッセージ送信優先度の設定] を参照して下さい。

2.9.5.7. エラーリトライの設定

[2.7.4. エラーリトライの設定] を参照して下さい。

2.9.5.8. オプション一覧の設定

[2.7.5. オプション一覧の設定] を参照して下さい。
File BCにおいて設定できるオプション一覧は下記の通りです。
表2.9.5.8-1
項目
説明

XML_Format_Input
XML宣言のencoding変更を行うか否かを指定します。
true/false
MaxRequestCount
エンドポイント単位で同時処理できる最大リクエスト数を設定します。
0にした場合は無制限となります。この設定はコンシューマでのみ有効です。
0-214748
AUTHORIZE_SKIP
エラーリトライ時に認証処理をスキップするか否かを指定します。
true/false

2.9.5.9. メッセージエクスチェンジハンドラの設定

[2.7.6. メッセージハンドラの設定] を参照して下さい。

2.9.5.10. メッセージコンバートハンドラの設定

[2.7.6. メッセージハンドラの設定] を参照して下さい。

2.9.5.11. メッセージ交換方式(MEP)

メッセージ交換方式(MEP)の説明は[ 製品構成と提供機能 > 3. JBI仕様 > 3.2. Normalized Message Router ] の 「メッセージ交換方式(MEP)」を参照してください。
Outbound
File BC の Outbound では、MEPはin-only、in-out、robust-in-onlyの三つをサポートします。
表2.9.5.11-1
MEP
タイプ
動作の説明
In-Only
要求
NMR から受け付けたメッセージエクスチェンジに格納されたInメッセージをファイルの内容として<output-dir>で指定された<output>ディレクトリに出力します。
応答(done)
ファイルの出力に異常が発生しなければ、DONEステータスを設定したメッセージエクスチェンジを NMR に返却します。
応答(Error)
ファイルの出力に異常が発生すると、例外メッセージを格納したメッセージエクスチェンジを NMR に返却します。
Robust In-Only
要求
NMR から受け付けたメッセージエクスチェンジに格納されたInメッセージをファイルの内容として<output-dir>で指定された<output>ディレクトリに出力します。外部コマンドの指定があれば、ファイルの出力が成功すると、そのコマンドを実行します。
応答(done)
ファイルの出力に異常が発生しなければ、DONEステータスを設定したメッセージエクスチェンジを NMR に返却します。
応答(Error)
ファイルの出力に異常が発生すると、例外メッセージを格納したメッセージエクスチェンジを NMR に返却します。
In-Out
要求
NMR から受け付けたメッセージエクスチェンジに格納されたInメッセージをエンドポイントで定義された<output-dir>ディレクトリへ出力します。 その後、エンドポイントで定義された<input-dir>ディレクトリを監視します。
応答(out)
エンドポイントで定義された<input-dir>ディレクトリから入力ファイルがあれば取得し、このファイルをoutメッセージとして設定したメッセージエクスチェンジを NMR に返却します。この後、 NMR からDONEステータスが設定されたメッセージエクスチェンジを待ち受けます。
応答(Error)
ファイル出力、又は返却ファイルを取得する時に、例外を検出した場合、例外メッセージを格納したメッセージエクスチェンジを NMR に返却します。
In Optional-Out
--
(File BCでは対応しません)
Inbound
File BC の Inbound では、MEPはin-only、in-out、robust-in-onlyの三つをサポートします。
表2.9.5.11-2
MEP
タイプ
動作の説明
In-Only
要求
エンドポイントで定義された<input-dir>ディレクトリを監視し、入力ファイルがあれば、ファイルから変換したInメッセージを格納したメッセージエクスチェンジを NMR に送信し、 NMR からのERRORかDONEステータスが設定されたメッセージエクスチェンジを待ち受けます。
応答(done)
NMR からDONEステータスが設定されたメッセージエクスチェンジを受信すると、入力ファイルを<processed-dir>ディレクトリに移動して、「問題なしに完了した」というメッセージをファイルとして<output-dir>ディレクトリに出力します。
応答(error)
NMR からERRORステータスが設定されたメッセージエクスチェンジを受信すると、入力ファイルを<processed-dir>ディレクトリに移動して、「異常メッセージを含む」というメッセージをファイルとして<output-dir>ディレクトリに出力します。
Robust In-Only
要求
エンドポイントで定義された<input-dir>ディレクトリを監視し、入力ファイルがあれば、ファイルから変換したInメッセージを格納したメッセージエクスチェンジを NMR に送信し、 NMR からのFault/Error/doneのメッセージエクスチェンジを待ち受けます。
応答(Fault)
NMR からFaultを受信すると、入力ファイルを<processed-dir>ディレクトリに移動して、受け付けたメッセージエクスチェンジに格納されたFaultデータの内容をファイルとして<output-dir>ディレクトリに出力して、DONEステータスを設定したメッセージエクスチェンジを NMR に返却します。
応答(done)
NMR からDONEステータスが設定されたメッセージエクスチェンジを受信すると、入力ファイルを<processed-dir>ディレクトリに移動して、「問題なしに完了した」というメッセージをファイルとして<output-dir>ディレクトリに出力します。
応答(error)
NMR からERRORステータスが設定されたメッセージエクスチェンジを受信すると、入力ファイルを<processed-dir>ディレクトリに移動して、「異常メッセージを含む」というメッセージをファイルとして<output-dir>ディレクトリに出力します。
In-Out
要求
エンドポイントで定義された<input-dir>ディレクトリを監視し、入力ファイルがあれば、ファイルから変換したInメッセージを格納したメッセージエクスチェンジを NMR に送信し、 NMR からのout/Fault/Errorのメッセージエクスチェンジを待ち受けます。
応答(out)
NMR からoutを受信すると、入力ファイルを<processed-dir>ディレクトリに移動して、受け付けたメッセージエクスチェンジに格納されたoutデータの内容をファイルとして<output-dir>ディレクトリに出力して、DONEステータスを設定したメッセージエクスチェンジを NMR に返却します。
応答(Fault)
NMR からFaultを受信すると、入力ファイルを<processed-dir>ディレクトリに移動して、受け付けたメッセージエクスチェンジに格納されたFaultデータの内容をファイルとして<output-dir>ディレクトリに出力して、DONEステータスを設定したメッセージエクスチェンジを NMR に返却します。
応答(Error)
NMR からERRORステータスが設定されたメッセージエクスチェンジを受信すると、入力ファイルを<processed-dir>ディレクトリに移動して、「異常メッセージを含む」というメッセージをファイルとして<output-dir>ディレクトリに出力します。
In Optional-Out
--
(File BCでは対応しません)

2.9.5.12. ノーマライズ規則

ローカルファイルシステムから取得したファイルを NMR に送信するメッセージエクスチェンジに変換することをノーマライズといいます。また、 NMR から受け取ったメッセージエクスチェンジをローカルファイルシステムへ出力するファイルに変換することをデノーマライズといいます。
ノーマライズ規則


図2.9.5.12-1

ノーマライズ規則は上図のようになっています。
エンドポイントのオペレーション設定項目に「入力ファイルのタイプ」をattachmentとすることで、ローカルファイルシステムから取得したファイルがノーマライズメッセージの添付ファイルとなります。xmlに設定すると、メッセージコンテントとなります。
デノーマライズ規則


図2.9.5.12-2

デノーマライズの規則は上図のようになっています。
エンドポイントのオペレーション設定項目に「出力ファイルのタイプ」をattachmentとすることで、添付ファイルをそのままローカルファイルシステムへ出力します。xmlに設定するとメッセージコンテントがローカルファイルシステムへ出力されます。

2.9.5.13. 異常系メッセージ

WebOTX ESBにおいて「File BCに誤ったメッセージが入力された」、「サービス呼び出しに失敗した」等の異常が発生した場合、File BCのInbound/Outboundから出力ファイル格納ディレクトリにエラーファイルが出力されます。 クライアントアプリケーションでは出力されたエラーファイルの内容から発生した異常の内容を知ることができます。 以下では、発生する異常の種類ごとにエラーファイルに格納するメッセージを説明します。

異常の種類により Fault または Error に分類されます。 File BCにおいて異常が発生するパターンの一覧は以下を参照ください。 [ リファレンス集 開発編(Enterprise Service Bus) > 2. 異常系メッセージ(Fault/Error) > 2.1. バインディングコンポーネント > 2.1.5. File BC ]

相手のエンドポイントがFaultを返却した場合

相手のエンドポイントから Fault を受け取った場合、 File BCは受け取ったFault形式のメッセージをファイルに出力します。 以下はFile BCがUserProcessor SEから Fault メッセージを受け取った場合の例です。

out_test_00001.xml

<esb-fault xmlns="http://www.nec.com/WebOTX/jbi/fault/"><exchangeid>1340000909939-00000019</exchangeid><date>2012-06-18T14:28:29.955+08:00</date><component>UserProcessorEngine</component><service-assembly>file-cbr-user</service-assembly><service-unit>UserProSU_file-cbr-user_001</service-unit><service-name xmlns:ns2="http://nec-as">ns2:ep_file-cbr-user_001</service-name><endpoint>ep_file-cbr-user_001</endpoint><role>PROVIDER</role><string>ユーザプロセッサがフォルトメッセージを送信します。</string><detail><a xmlns="" xmlns:ns2="http://www.nec.com/WebOTX/jbi/fault/">User Fault</a></detail></esb-fault>

相手のエンドポイントがErrorを返却した場合
入力ファイルのチェックに失敗した場合

相手のエンドポイントから Error を受け取った場合や、制御ファイルフォーマット不正で入力ファイルのチェックに失敗した場合、 File BCは Error 形式のメッセージを *.err というファイルに出力します。 以下はFile BCがUserProcessor SEから Error メッセージを受け取った場合の例です。

out_test_00001.err

com.nec.webotx.jbi.exception.WebOTXESBExceptionImpl: javax.jbi.JBIException: プロセサの処理に異常が発生しました。
ESB Exception message
Message ID: 1340000695559-00000005
Date      : Mon Jun 18 14:24:55 CST 2012
Component : UserProcessorEngine
String    : プロセサの処理に異常が発生しました。
ServiceAssembly:file-cbr-user
ServiceUnit    :UserProSU_file-cbr-user_001
ServiceName    :{http://nec-as}ep_file-cbr-user_001
EndpointName   :ep_file-cbr-user_001

	at com.nec.webotx.jbi.engine.user.ServiceExecutor.sendErrorMessageExchange(ServiceExecutor.java:206)
	at com.nec.webotx.jbi.engine.user.ServiceExecutor$ProcessorThread.run(ServiceExecutor.java:572)
Caused by: javax.jbi.JBIException: プロセサの処理に異常が発生しました。
	... 1 more
Caused by: java.io.IOException: StatProcessor: Requred ME Status is ERROR
	at StatProcessor.process(StatProcessor.java:113)
	at com.nec.webotx.jbi.engine.user.ServiceExecutor$ProcessorThread.run(ServiceExecutor.java:557)

2.9.5.14. 入出力ディレクトリとファイル名

Outbound
別のサービスからリクエストメッセージを受けると、メッセージエクスチェンジのノーマライズメッセージに含まれるXMLかattachmentを指定した「出力ファイル格納ディレクトリ」に出力します。1つのメッセージエクスチェンジから1つのファイルを取得します。
出力ファイルパスと名前の生成ルール:
<output-dir>¥"prefix"_"provider"_"trackingid"."extension"
表2.9.5.14-1
名称
説明
output-dir
「出力ファイル格納ディレクトリ」で指定したディレクトリです。
Prefix
指定した出力ファイル名のプレフィックスです。既定値は "out" です。
provider
ロールを設定します。既定値は「provider」です。
Trackingid
File BCが生成します。ファイルの出力順で、0 - Long型のMAX値までの連番となります。統合運用管理ツールからESB→コンポーネント→Fileバインディングの設定項目で最初に出力する桁数を指定できます。桁数に達していない場合、0を補足して出力します。既定値は5で、出力は_00001、_00002、…となります。
extension
ファイルの拡張子です。File BCから入力されたメッセージならば、入力したファイルと同じ拡張子になります。メッセージがFile BCからの入力でなければ、「出力ファイル名のプレフィックス」で設定した値となります。「出力ファイル名のプレフィックス」の既定値の "xml" です。
   「入力ファイルのタイプ」が「attachment」と設定された場合は、attachment固有の拡張子になります。

Memo
MAX値:9223372036854775807
          桁数:[1-18]

Caution
<output-dir>で同名ファイルが既に存在する場合、上書します。

Inbound
コンシューマ(inbound)として、「入力ファイル格納ディレクトリ」を監視し、入力ファイルがあれば、定義されたEndpointを呼び出し、入力ファイルを「処理ディレクトリ」に移動、返却情報を「出力ファイル格納ディレクトリ」にファイルを出力します。SAを起動させるときに、自動的に「入力ファイル格納ディレクトリ」の直下にオペレーションごとにサブディレクトリを作成し、それぞれのオペレーションにより監視されます。親の「入力ファイル格納ディレクトリ」に置かれるファイルは、SUエディタの「オペレーション一覧」のリストで最上段にあるオペレーションにより処理されます。
次の図でディレクトリ構成を例示します。

組織図
図2.9.5.14-1

返却メッセージエクスチェンジの中に出力を示すNormalizedMessageがあれば、XMLファイルとして出力します。なければ、「問題なしに完了した」という旨のメッセージをファイルとして出力します。
「入力ファイルパターン」で正規表現が設定された場合、そのルールで入力ファイルをチェックし、一致しない場合無視します。
入力ファイルが複数の場合、一つのファイルは一つのメッセージエクスチェンジに添付します。
「処理ディレクトリ」に出力ファイルパスと名前の生成ルール:
<process-dir>¥filename_trackingid. extension
表2.9.5.14-2
名称
説明
process-dir
定義された「処理ディレクトリ」
filename
ファイル名(パスと拡張子を含まない。)
trackingid
ファイルBCが生成します。
   0 - Long型のMAX値までの数字を繰り返して利用します。統合運用管理ツールからESB→コンポーネント→Fileバインディングの設定項目で最初に出力する桁数を指定できます。桁数に達していない場合、0を補足して出力します。デフォルト値は5です。出力は:_00001、00002、…となります。
extension
ファイルの拡張子

Memo
MAX値:9223372036854775807
          桁数:[1-18]

Caution
<process-dir>で同名ファイルが既に存在する場合、上書しません。

「出力ファイル格納ディレクトリ」に出力ファイルパスと名前の生成ルール:
<out-dir>¥prefix_filename_trackingid.extension
表2.9.5.14-3
名称
説明
out-dir
「出力ファイル格納ディレクトリ」で指定したディレクトリです。
Prefix
指定した出力ファイル名のプレフィックスです。既定値は "out" です。
filename
ファイル名(パスと拡張子を含まない。)
trackingid
File BCが生成します。ファイルの出力順で、0 - Long型のMAX値までの連番となります。統合運用管理ツールからESB→コンポーネント→Fileバインディングの設定項目で最初に出力する桁数を指定できます。桁数に達していない場合、0を補足して出力します。既定値は5で、出力は_00001、_00002、…となります。
extension
ファイルの拡張子です。
   正常に実行された場合は"done"となり、エラーが発生した場合は、"err"になる。

Memo
MAX値:9223372036854775807
          桁数:[1-18]

Caution
<output-dir>で同名ファイルが既に存在する場合、上書します。

2.9.5.15. メッセージ処理モード

メッセージ処理モードの設定でnormalを選択した場合はSUで設定したディレクトリ内のファイルをメッセージファイルとして処理し、controlを選択した場合は制御メッセージモードとして次のように動作します。

制御メッセージのスキーマファイル(controlMessage.xsd)は${AS_INSTALL}]/jbi/components/file/filebinding.jarに含まれます。
制御メッセージモードではスキーマに従っていないメッセージを受信した場合、スキーマ検証時にエラーになり、その制御ファイルを処理しません。

ファイルに関する設定項目

表2.9.5.15-1
設定項目
説明

input-dir
入力ファイルを格納するためのディレクトリを指定します。
   エンドポイントロールがプロバイダの場合では本設定は使用されませんが、適当なディレクトリを指定してください。
サーバのディレクトリパス[必須]
processed-dir
処理済の入力ファイルを退避するディレクトリを指定します。
サーバのディレクトリパス[必須]
output-dir
出力ファイルを格納するためのディレクトリを指定します。
サーバのディレクトリパス[必須]
input-message-type
NormalizedMessageにデータを格納する際の形式を指定します。xmlを選択するとxml形式でContentに格納します。
Attachmentを選択するとバイナリデータとしてAttachmentに格納します。
xml或いはattachment、デフォルトは"xml"
output-message-type
出力ファイルを格納するためのディレクトリを指定します。
xml或いはattachment、デフォルトは"xml"
output-file-prefix
出力ディレクトリにファイルを出力する際のファイル名のプレフィックスを指定します。
文字列[任意]デフォルトは"out"
output-file-extension
出力ディレクトリにファイルを出力する際のファイルの拡張子を指定します。
文字列[任意]デフォルトは"xml"
output-file-extension
出力ディレクトリにファイルを出力する際のファイルの拡張子を指定します。
文字列[任意]デフォルトは"xml"
message
処理するメッセージファイル名を指定します。[任意]
file
処理するメッセージファイル名を指定します。
文字列[必須]
properties
プロパティ群を指定します。[任意]
property
プロパティを指定します。[任意]
key
プロパティ名を指定します。
文字列[必須]
value
プロパティ値を指定します。
文字列[必須]

制御メッセージモードの場合制御メッセージの例

<?xml version="1.0" encoding="UTF-8"?>
<controlMessage xmlns="http://webotx.com.nec/jbi/controMessage-config"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://webotx.com.nec/jbi/controMessage-config controlMessage.xsd ">
  <input-dir>C:\temp\OutBound\control\in</input-dir>
  <processed-dir>C:\temp\OutBound\control\process</processed-dir>
  <output-dir>C:\temp\OutBound\control\out</output-dir>
  <input-message-type>xml</input-message-type>
  <output-message-type>xml</output-message-type>
  <output-file-prefix>out</output-file-prefix>
  <output-file-extension>xml</output-file-extension>
  <message>
    <file>SOAPFile.xml</file>
    <properties>
      <property>
        <key>Role</key>
        <value>Provider</value>
      </property>
    </properties>
  </message>
</controlMessage>

2.9.5.16. ファイル名のパターン

「新仕様のパターンを使用する」をチェックしない場合(V8.4までのパターン)

「新仕様のパターンを使用する」をチェックした場合