ExceptionList ツリーは、メッセージ・フローがメッセージを処理する際に発生する例外に関する情報を書き込む、論理メッセージ・ツリーの一部です。
ExceptionList ツリーのルートは ExceptionList と呼ばれ、ツリーはゼロ個以上の例外記述のセットから構成されます。 ExceptionList ツリーは、例外が発生した場合に、メッセージ・フローによって移植されます。 メッセージ・フローの処理中に例外条件が発生しない場合には、そのメッセージに関連した例外リストは、ルート・エレメントのみから構成されます。 これは、実際には、例外の空のリストです。
ExceptionList ツリーは、例外の発生後にメッセージを受信する、メッセージ・フロー内の他のノードがアクセスすることができます。 その内容は、Compute ノードでのみ変更することができます。
例外条件が発生した場合、メッセージ処理は中断され、例外がスローされます。 制御は高位、つまりエンクロージング・キャッチ・ブロックに戻されます。 障害条件を記述する ExceptionList が作成され、メッセージ全体が LocalEnvironment および新たに移植された ExceptionList と共に、例外処理メッセージ・フロー・パスを介して伝搬します。
ExceptionList の子は常に RecoverableException です。 ある環境では複数生成されることがありますが、このルートの子は、通常は 1 つだけです。 ExceptionList の子には、多数の子が含まれており、その最後のものは、例外のタイプに特定の詳細情報を提供します。例外のタイプは、以下のいずれか 1 つです。
以下に、RecoverableException の例外リスト・ツリーの構造を示します。
例外記述構造は、ExceptionList ツリーを生成するために、反復やネストが可能です。 このツリーでは、
ツリー内の子は、例外の詳細を与える多数の名前値エレメント、および Insert という名前のゼロ個以上の名前エレメントの形式を取ります。 名前値エレメントで識別される、NLS (各国語サポート) メッセージ番号は、WebSphere Message Broker エラー・メッセージを識別します。 Insert 値を使用して、このメッセージ内の変数を置換し、例外の原因の詳細を提供します。
上の図に示された例外リスト内の名前値エレメントを、下記の表で説明します。
名前 | タイプ | 説明 | |
---|---|---|---|
File1 | ストリング | C++ ソース・ファイル名 | |
Line1 | 整数 | C++ ソース・ファイル行番号 | |
Function1 | ストリング | C++ ソース関数名 | |
Type2 | ストリング | ソース・オブジェクト・タイプ | |
Name2 | ストリング | ソース・オブジェクト名 | |
Label2 | ストリング | ソース・オブジェクト・ラベル | |
Text1 | ストリング | 追加テキスト | |
Catalog3 | ストリング | NLS メッセージ・カタログ名 4 | |
Severity3 | 整数 | 1 = 通知 |
|
Number3 | 整数 | NLS メッセージ番号 4 | |
Insert3 | タイプ | 整数 | 値のデータ・タイプ
0 = 不明 |
テキスト | ストリング | データ値 | |
注 :
|
メッセージ・フロー処理が完了すると、ExceptionList ツリーは廃棄されます。
Airline Reservations サンプルは、XML_Reservation メッセージ・フロー内の ExceptionList を使用して、エラー情報を Throw ノードに渡します。このノードは、ExceptionList の情報を含むエラー・メッセージを生成します。