Cosminexus V9 BPM/ESB基盤 サービスプラットフォーム システム構築・運用ガイド

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

7.7.21 ビジネスプロセス実行時の障害対策

ビジネスプロセス実行時には,次の図に示す障害が発生する場合があります。これらの障害時の対処方法について説明します。

図7-155 ビジネスプロセス実行時の障害

[図データ]

<この項の構成>
(1) 非同期の受付アクティビティでの失敗
(2) 同期の受付アクティビティでの失敗
(3) 同期の受付アクティビティへ送信した際のタイムアウト
(4) サービス呼び出し時のエラー(例外)
(5) サービス呼出時のサービス部品からのフォルト

(1) 非同期の受付アクティビティでの失敗

サービスリクエスタから非同期の受付アクティビティに対して電文を送信したときにエラーが発生した場合,HCSCサーバでは電文を受け付けていない状態となります。この場合の対処手順を次に示します。

  1. エラーの要因を取り除きます。
  2. サービスリクエスタから,同一の電文を再送信します。

(2) 同期の受付アクティビティでの失敗

サービスリクエスタから同期の受付アクティビティに対して電文を送信したときに,エラーになった場合の対処手順を次に示します。

  1. メッセージログに出力されているエラーメッセージを参照します。
  2. エラーの原因を取り除きます(エラーの種類によっては必要です)。
  3. サービスリクエスタから電文を再送信します。

(3) 同期の受付アクティビティへ送信した際のタイムアウト

サービスリクエスタから同期の受付アクティビティに対して電文を送信したときに,タイムアウトが発生した場合の対処方法を次に示します。

対処方法
サービスリクエスタから送信した電文が実行できているかどうか不明なため,メッセージログにエラーメッセージが出力されているかどうかを確認します。
エラーメッセージが出力されている場合
  1. エラーメッセージが出力されている場合は,エラーメッセージに対応した対処を実施します。
エラーメッセージが出力されていない場合
  1. 該当電文の相関セットから,プロセスインスタンスの状態をcscpiselectコマンドで確認します。
  2. プロセスインスタンスの状態が実行中のままの場合は,次のどちらかを実施します。
    ・プロセスインスタンスをcscpireexecコマンドで再実行します。
    ・プロセスインスタンスの実行履歴をcscpideleteコマンドで削除して,サービスリクエスタから同一電文を再送信します。
    プロセスインスタンスの状態を取得できない場合は,該当電文の受信が失敗しているため,サービスリクエスタから同一の電文を再送信します。

(4) サービス呼び出し時のエラー(例外)

ビジネスプロセスのサービス呼出アクティビティでサービス呼び出しを実行した場合,次のようなエラーが発生すると,プロセスインスタンスの実行が停止します。

なお,該当するサービス呼出アクティビティの状態は,ビジネスプロセスの互換性の使用有無(HCSCサーバセットアップ定義のbp-status-compatible)がOFFの場合は,エラー状態または実行中状態のままとなり,ONの場合は実行中状態のままとなります。

エラーが発生した場合の対処手順を次に示します。

  1. 障害情報に従って,サービスアダプタ,サービス部品などのエラー原因を取り除きます。
  2. cscpireexecコマンドでプロセスインスタンスを再実行して,サービス部品を再呼び出しします。このとき,サービス部品に対して同一メッセージの2回目の呼び出しが行われるため,サービス部品側で重複チェックを実施して2回目の呼び出しを矛盾なく処理できる必要があります。

(5) サービス呼出時のサービス部品からのフォルト

HCSCサーバがサービス部品に対して同期呼び出しを実行したときに,サービス部品がフォルト電文を応答した場合の対処方法を次に示します。

対処方法
フォルトコネクションを定義している場合
定義したフォルトコネクションに従って,処理が実行されます。
フォルトコネクションを定義していない場合
プロセスインスタンスがフォルト終了状態となり,プロセスインスタンスの実行が停止します。サービス部品がフォルトを応答しないような電文を再送信します。

 

注意
サービス呼び出し時のサービス部品から返されたSOAP Faultがフォルトの場合は,cscpireexecコマンドではプロセスインスタンスを再実行できません。これは,定義したフォルトコネクションに従ってビジネスプロセスの処理を実行したり,プロセスインスタンスの実行が停止したりするため,ビジネスプロセスの状態が中断した状態のままとはならないからです。