16.1.1 サービス部品からユーザ定義例外のエラーがリターンした場合(ビジネスプロセスを使用するとき)

<この項の構成>
(1) フォルト処理で障害情報をサービス電文にデータ変換しない場合
(2) フォルト処理で障害情報をサービス電文にデータ変換する場合

(1) フォルト処理で障害情報をサービス電文にデータ変換しない場合

サービス部品からユーザ定義例外のエラーがリターンした場合(ビジネスプロセスを使用するとき)のTP1/RPC受付でのエラーの伝わり方(フォルト処理なし)を次の図に示します。

図16-1 サービス部品からユーザ定義例外のエラーがリターンした場合(ビジネスプロセスを使用するとき)のTP1/RPC受付でのエラーの伝わり方(フォルト処理なし)

[図データ]

サービス部品で発生した例外は,CSCMsgServerExceptionとしてTP1/RPC受付に伝わります。その例外をキャッチしたTP1/RPC受付は,実行時例外をTP1インバウンドアダプタに再スローします。その後,TP1インバウンドアダプタ経由で,サービスリクエスタには,サービス要求のリターン値としてDCRPCER_SYSERR_AT_SERVER(-316)が返ります。

(2) フォルト処理で障害情報をサービス電文にデータ変換する場合

サービス部品からユーザ定義例外のエラーがリターンした場合(ビジネスプロセスを使用するとき)のTP1/RPC受付でのエラーの伝わり方(フォルト処理あり)を次の図に示します。

図16-2 サービス部品からユーザ定義例外のエラーがリターンした場合(ビジネスプロセスを使用するとき)のTP1/RPC受付でのエラーの伝わり方(フォルト処理あり)

[図データ]

サービス部品で発生した例外は,そのまま例外としてビジネスプロセスのフォルト処理に伝わります。その後,ビジネスプロセスのフォルト処理でその障害情報を応答電文にデータ変換し,障害情報を含んだ応答電文として,以降の処理に返します。この場合,メッセージ配送制御を経由して,TP1/RPC受付に応答電文が返ります。TP1/RPC受付は,通常の応答電文と同様,その応答電文をTP1インバウンドアダプタに返します。サービスリクエスタには,通常の処理と同様,サービス要求の引数に,応答電文が設定されて返ります。