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

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

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

[図データ]

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

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

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

対処方法

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

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

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

対処方法

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

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

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

対処方法

サービスリクエスタから送信した電文が実行できているかどうか不明なため,メッセージログにエラーメッセージが出力されているかどうかを確認します。

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

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

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

プロセスインスタンスの実行が停止するエラー
  • サービス呼出アクティビティから呼び出すサービスアダプタが未起動状態
  • サービス呼出アクティビティから呼び出すサービスアダプタが未配備状態
  • サービス呼出アクティビティから呼び出すサービスアダプタでのデータ変換処理の失敗
  • 同期のサービス部品呼び出し処理でのエラー(サービス部品の宛先不正,サービス部品の停止によるHTTPエラー,通信タイムアウト,通信障害など)
  • ビジネスプロセスの互換性の使用有無がOFFの場合,非同期のサービス部品呼び出し処理でのエラー(キューの宛先不正,キューへの送信処理の失敗など)
  • DBアダプタを使用してDBアクセスを行う処理でのエラー(DBアクセスエラー,SQLエラー,DB Connectorの設定不正など)
  • SOAPのサービス部品呼び出し処理で,Webサービスから応答したフォルト電文が,HCSCサーバでフォルトとして扱うための条件を満たしていない
    サービス部品から返されたフォルト電文がフォルトとして扱われる条件については,マニュアル「Cosminexus サービスプラットフォーム 機能解説」の「5.3 SOAP Fault動作定義ファイルによるフォルトのキャッチ」を参照してください。

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

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

対処方法

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

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

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

対処方法

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