例外処理用の特殊なハンドラーを提供するには、TryCatch ノードを使用します。
このトピックには、以下のセクションが含まれています。
まず入力メッセージは、Try ターミナルにルーティングされます。これは、メッセージ・フローのエラー処理ノードではない残りのノードに接続する必要があります。 ダウンストリーム・ノード (Throw ノードの可能性があります) から例外がスローされると、 TryCatch ノードはそれをキャッチして、オリジナル・メッセージをその Catch ターミナルにルーティングします。 Catch ターミナルを別のノードに接続して、例外の後にメッセージのエラー処理を行えるようにします。 Catch ターミナルが接続している場合、メッセージはそこに伝搬されます。 Catch ターミナルが接続していない場合、メッセージは廃棄されます。
TryCatch ノードはパレットの「構造」ドロワーに含まれていて、WebSphere® Message Broker Toolkit 内では次のアイコンによって表されます。
サンプルに関する情報は、WebSphere Message Broker Toolkit に統合されているインフォメーション・センター、またはオンライン・インフォメーション・センターを使用する場合にのみ表示できます。 サンプルは、WebSphere Message Broker Toolkit に統合されているインフォメーション・センターを使用する場合にのみ実行できます。
Compute ノードを使用して合計を計算するときに Throw および TryCatch ノードを使用します。 計算された合計が「Total」フィールドの最大値を超えるときにシステム管理者に送信されるメッセージを作成できます。
TryCatch ノードには、その操作に影響を与える構成可能なプロパティーがありません。 出力ターミナルをメッセージ・フロー内の後続のノードに接続することによって、作動方法を決定します。
メッセージ・フローで例外がスローされる場合には、 Throw ノードまたは ESQL THROW ステートメントを明示的に使用するか、 メッセージ・フローが処理するようにプログラムされていないエラーが検出された場合にブローカーが暗黙的な例外を発生することにより、 制御が TryCatch ノードに戻ります。
ノードが Catch ターミナルに接続している一連のノード (catch フロー) にそのメッセージを伝搬すると、設計済みのエラー処理が開始されます。 ここで伝搬されるメッセージ・ツリーの内容は、Try ターミナルに伝搬された内容、つまり TryCatch ノードが最初に受け取った時のツリーの内容と同一です。 このノードは、例外リスト・ツリーに書き込んだ新しい例外情報でメッセージ・ツリーを更新します。 try フローにある各ノードがメッセージ・ツリーに対して行った変更や追加は、catch フローに伝搬されるメッセージ・ツリーには反映されません。
TryCatch ノードのインスタンスをメッセージ・フローに入れると、それを構成することができます。メッセージ・フロー・ノードの構成を参照してください。 ノードのプロパティーが、「プロパティー」ビューに表示されます。
TryCatch ノードのターミナルについては、次の表に説明されています。
ターミナル | 説明 |
---|---|
In | ノードが処理するメッセージを受け入れる入力ターミナル。 |
Catch | 例外がダウンストリームでスローされ、ノードによってキャッチされた場合に メッセージが伝搬される出力ターミナル。 |
Try | キャッチされない場合に、メッセージが伝搬される出力ターミナル。 |
以下の表では、ノード・プロパティーについて説明しています。 M の見出しの列は、プロパティーが必須 かどうかを示します (デフォルトが定義されていない場合に値を入力することが必要なら、アスタリスクのマークが付きます)。 C の見出しの列は、プロパティーが構成可能 (メッセージ・フローを BAR ファイルに追加してデプロイするとき、値を変更できる) かどうかを示します。
TryCatch ノードの「説明」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
ノード名 | いいえ | いいえ | ノード・タイプ: TryCatch | ノードの名前。 |
簡略説明 | いいえ | いいえ | ノードの簡単な説明 | |
詳細説明 | いいえ | いいえ | メッセージ・フロー内のノードの目的を説明するテキスト |
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
イベント | いいえ | いいえ | なし | ノードに対して定義したイベントが、このタブに表示されます。 デフォルトでは、メッセージ・フローのどのノードに対してもモニター・イベントは定義されません。 ノードのモニター・イベントを作成、変更、または削除するには、「追加」、「編集」、および「削除」を使用します。詳しくは、モニター・プロパティーを使用したモニター・イベント・ソースの構成を参照してください。 「使用可能」チェック・ボックスを選択またはクリアすることによって、ここに表示されているイベントを使用可能および使用不可に設定できます。 |