Cosminexus V9 BPM/ESB基盤 サービスプラットフォーム 開発ガイド 受付・アダプタ定義編

[目次][用語][索引][前へ][次へ]

付録A.7 カスタム受付でのエラーの伝わり方

サービスリクエスタからカスタム受付を使用してサービス部品を呼び出すときに,障害が発生すると,サービスリクエスタにエラーがリターンします。ここでは,エラーが発生した個所からサービスリクエスタまでどのようにエラーが伝わるかについて説明します。

<この項の構成>
(1) サービス部品からユーザ定義例外のエラーがリターンした場合(ビジネスプロセスを使用するとき)
(2) サービス部品からユーザ定義例外以外のエラーがリターンした場合(ビジネスプロセスを使用するとき)
(3) HCSCサーバからエラーがリターンした場合(ビジネスプロセスを使用するとき)
(4) ファイルイベント受付がエラーを検知した場合

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

ここでは,サービス部品からユーザ定義例外のエラーがリターンした場合(ビジネスプロセスを使用するとき)のエラーの伝わり方を説明します。

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

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

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

[図データ]

サービス部品で発生した例外は,そのまま例外としてカスタム受付フレームワークに伝わります。その例外をキャッチしたカスタム受付フレームワークは,CSCMsgServerExceptionを受付処理に再スローします。

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

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

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

[図データ]

サービス部品で発生した例外は,そのまま例外としてビジネスプロセスのフォルト処理に伝わります。そのあと,ビジネスプロセスのフォルト処理でその障害情報を応答電文にデータ変換し,障害情報を含んだ応答電文として,以降の処理に返します。この場合,HCSCメッセージ配送制御を経由して,カスタム受付フレームワークに応答電文が返ります。カスタム受付フレームワークは,通常の応答電文と同様,その応答電文を受付処理に返します。

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

ここでは,サービス部品からユーザ定義例外以外のエラーがリターンした場合(ビジネスプロセスを使用するとき)のエラーの伝わり方を説明します。

(3) HCSCサーバからエラーがリターンした場合(ビジネスプロセスを使用するとき)

ここでは,HCSCサーバからエラーがリターンした場合(ビジネスプロセスを使用するとき)のエラーの伝わり方を説明します。

HCSCサーバからエラーがリターンした場合(ビジネスプロセスを使用するとき)のカスタム受付でのエラーの伝わり方を次の図に示します。

図A-8 HCSCサーバからエラーがリターンした場合(ビジネスプロセスを使用するとき)のカスタム受付でのエラーの伝わり方

[図データ]

図中の各エラーには,次に示すケースが該当します。

HCSCサーバで図中のエラー1〜エラー5のどれかを検知した場合,カスタム受付フレームワークは,発生したエラーの情報をCSCMsgServerExceptionで,受付処理にスローします。

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

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

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

[図データ]

サービス部品で想定外の例外が発生した場合,RuntimeException(システム例外)としてカスタム受付フレームワークに伝わります。その例外をキャッチしたカスタム受付フレームワークは,キャッチしたRuntimeException(システム例外)を,そのまま受付処理に再スローします。

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

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

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

[図データ]

サービス部品で発生した例外は,そのまま例外としてビジネスプロセスのフォルト処理に伝わります。そのあと,ビジネスプロセスのフォルト処理でその障害情報を応答電文にデータ変換し,障害情報を含んだ応答電文として,以降の処理に返します。この場合,HCSCメッセージ配送制御を経由して,カスタム受付フレームワークに応答電文が返ります。カスタム受付フレームワークは,通常の応答電文と同様,その応答電文を受付処理に返します。

(4) ファイルイベント受付がエラーを検知した場合

ここでは,ファイル監視中にファイルイベント受付でエラーを検知した場合の要因の特定と対処方法について説明します。

ファイルイベント受付がエラーを検知する個所を次の図に示します。

図A-11 ファイルイベント受付がエラーを検知する個所

[図データ]

ファイルイベント受付で検知するエラーは,監視対象のファイルによって異なります。

●更新完了通知ファイルを監視する場合
図中のエラーが発生する要因を次に示します。
  • 取得対象ファイルが存在しない
  • ロックファイルの作成失敗
  • ロックファイルのロック取得失敗
  • ロックファイルのロック解放失敗
  • 更新完了通知ファイルのリネーム失敗
ファイルイベント受付は,障害の内容を基にメッセージテキストを作成し,メッセージログに出力します。ファイルイベントトレースを確認し,次の対策をしてください。
  • ファイルイベントトレースの取得ポイント「IN」にトレースが出力されている場合
    ビジネスプロセス内での処理は正常終了しているため,回復処理としてメッセージログに出力されるエラーメッセージを参照し,対策をしてください。
  • ファイルイベントトレースの取得ポイント「IN」にトレースが出力されていない場合
    メッセージログに出力されるエラーメッセージを参照し,対策をしてください。対策したあとで,更新完了通知ファイルがリネームされている場合は,再度ファイル転送・データ連携ソフトウェアから更新完了通知ファイルを作成することで対処できます。リネームされていない場合は,次のファイル監視の間隔でエラーが検知されます。

●取得対象ファイルを監視する場合
図中のエラーが発生する要因を次に示します。
  • 取得対象ファイルが存在しない
  • ロックファイルの作成失敗
  • ロックファイルのロック取得失敗
  • ロックファイルのロック解放失敗
  • 取得対象ファイルのリネーム失敗
ファイルイベント受付は,障害の内容を基にメッセージテキストを作成し,メッセージログに出力します。ファイルイベントトレースを確認し,次の対策をしてください。
  • ファイルイベントトレースの取得ポイント「IN」にトレースが出力されている場合
    ビジネスプロセス内での処理は正常終了しているため,メッセージログに出力されるエラーメッセージを参照し,対策をしてください。
  • ファイルイベントトレースの取得ポイント「IN」にトレースが出力されていない場合
    メッセージログに出力されるエラーメッセージを参照し,対策をしてください。対策した後で,取得対象ファイルがリネームされている場合は,再度ファイル転送・データ連携ソフトウェアから取得対象ファイルを作成することで対処できます。リネームされていない場合は,次のファイル監視の間隔でエラーが検知されます。
    参考
    リネーム後の取得対象ファイルが残っている場合は,ファイルイベントトレースを確認し,該当するファイルに関する処理が終了しているか確認します。
    処理が終了している場合は,リネーム後の取得対象ファイルを削除できます。
    再度ファイル転送・データ連携ソフトウェアから取得対象ファイルを作成する場合は,リネーム後の取得対象ファイルを削除してから行う必要があります。