タイムアウト通知エラーの処理
タイムアウト通知 ノードは、Failure ターミナルと Catch ターミナルが接続されているかどうかに応じて、トランザクション・メッセージのエラーを処理するときにさまざまなアクションを実行します。
- タイムアウト通知 ノードが内部エラーを検出すると、以下のいずれかのアクションが発生します。
- Failure ターミナルに接続していない場合:
- タイムアウト通知 ノードは、エラーをローカル・エラー・ログに書き込みます。
- タイムアウト通知 ノードは、問題が解決されるまで、繰り返し要求の処理を試みます。
- Failure ターミナルに接続している場合、Failure ターミナルに接続されているフロー内のエラーを処理する責任はユーザーにあります。 統合ノードは例外リストを作成してエラーを表し、これはメッセージ・ツリーの一部として Failure ターミナルに伝搬されます。 タイムアウト通知 ノードおよび統合ノードは、これ以上の障害処理を提供しません。 メッセージは同じトランザクションの一部として Failure ターミナルに書き込まれ、 障害フローがエラーを正常に処理した場合はトランザクションがコミットされます。
- Failure ターミナルに接続していない場合:
- タイムアウト通知 ノードがメッセージを Out ターミナルに正常に伝搬し、Out ターミナルに接続されているフローで例外がスローされた場合、メッセージは タイムアウト通知 ノードに戻されます。 タイムアウト通知 ノードはエラーをローカル・エラー・ログに書き込み、以下のいずれかのステップを実行します。
- Catch ターミナルに接続していない場合、 タイムアウト通知 ノードは問題が解決されるまでメッセージの処理を再試行します。
- Catch ターミナルに接続している場合、Catch ターミナルに接続されているフロー内のエラーを処理する責任はユーザーにあります。 統合ノードは例外リストを作成してエラーを表し、これはメッセージ・ツリーの一部として Catch ターミナルに伝搬されます。 タイムアウト通知 ノードおよび統合ノードは、これ以上の障害処理を提供しません。 メッセージは同じトランザクションの一部として Catch ターミナルに書き込まれ、 Catch ターミナルに接続されたフローがエラーを正常に処理した場合は、トランザクションがコミットされます。
- タイムアウト通知 ノードが既にメッセージを Catch ターミナルに伝搬しており、Catch ターミナルに接続されているフローで例外がスローされた場合は、メッセージが タイムアウト通知 ノードに返されます。 タイムアウト通知 ノードは、エラーをローカル・エラー・ログに書き込み、メッセージの処理を再試行します。
- タイムアウト通知 ノードが既にメッセージを Failure ターミナルに伝搬しており、Failure ターミナルに接続されたフローで例外がスローされた場合、メッセージは タイムアウト通知 ノードに戻されます。 タイムアウト通知 ノードはエラーをローカル・エラー・ログに書き込み、メッセージの処理を再試行します。 Catch ターミナルに接続している場合でも、メッセージは Catch ターミナルに伝搬されません。
このアクションについては、以下の表で要約されています。
エラー・イベント | Failure ターミナルに接続している | Failure ターミナルに接続していない | Catch ターミナルに接続している | Catch ターミナルに接続していない |
---|---|---|---|---|
ノードが内部エラーを検出する。 | Failure ターミナルに接続されているフローがエラーを処理する。 | エラーがログに記録され、ノードが処理を再試行する。 | 適用外 | 適用外 |
ノードが Out ターミナルにメッセージを伝搬すると、出力フローで例外が発生する。 | 適用外 | 適用外 | Catch ターミナルに接続されているフローがエラーを処理する | エラーがログに記録され、ノードが処理を再試行する。 |
ノードが Catch ターミナルにメッセージを伝搬すると、Catch ターミナルに接続されているフローで例外が発生する。 | エラーがログに記録され、ノードが処理を再試行する。 | エラーがログに記録され、ノードが処理を再試行する。 | 適用外 | 適用外 |
ノードが Failure ターミナルにメッセージを伝搬すると、Failure ターミナルに接続されているフローで例外が発生する。 | 適用外 | 適用外 | エラーがログに記録され、ノードが処理を再試行する。 | エラーがログに記録され、ノードが処理を再試行する。 |