7.7.26 ビジネスプロセス実行時の障害対策
ビジネスプロセス実行時には,次の図に示す障害が発生する場合があります。
|
|
また,ビジネスプロセス実行コマンド(csmexecutebpコマンド)の実行時にも障害が発生する場合があります。
これらの障害時の対処方法について説明します。
- 〈この項の構成〉
(1) 非同期の受付アクティビティでの失敗
サービスリクエスタから非同期の受付アクティビティに対して電文を送信したときにエラーが発生した場合,HCSCサーバでは電文を受け付けていない状態となります。この場合の対処手順を次に示します。
-
エラーの要因を取り除きます。
-
サービスリクエスタから,同一の電文を再送信します。
(2) 同期の受付アクティビティでの失敗
サービスリクエスタから同期の受付アクティビティに対して電文を送信したときに,エラーになった場合の対処手順を次に示します。
-
メッセージログに出力されているエラーメッセージを参照します。
-
エラーの原因を取り除きます(エラーの種類によっては必要です)。
-
サービスリクエスタから電文を再送信します。
(3) 同期の受付アクティビティへ送信した際のタイムアウト
サービスリクエスタから同期の受付アクティビティに対して電文を送信したときに,タイムアウトが発生した場合の対処方法を次に示します。
- 対処方法
-
サービスリクエスタから送信した電文が実行できているかどうか不明なため,メッセージログにエラーメッセージが出力されているかどうかを確認します。
- エラーメッセージが出力されている場合
-
-
エラーメッセージが出力されている場合は,エラーメッセージに対応した対処を実施します。
-
- エラーメッセージが出力されていない場合
-
-
該当電文の相関セットから,プロセスインスタンスの状態をcscpiselectコマンドで確認します。
-
プロセスインスタンスの状態が実行中のままの場合は,次のどちらかを実施します。
・プロセスインスタンスをcscpireexecコマンドで再実行します。
・プロセスインスタンスの実行履歴をcscpideleteコマンドで削除して,サービスリクエスタから同一電文を再送信します。
プロセスインスタンスの状態を取得できない場合は,該当電文の受信が失敗しているため,サービスリクエスタから同一の電文を再送信します。
-
(4) サービス呼び出し時のエラー(例外)
ビジネスプロセスのサービス呼出アクティビティでサービス呼び出しを実行した場合,次のようなエラーが発生すると,プロセスインスタンスの実行が停止します。
-
サービス呼出アクティビティから呼び出すサービスアダプタが未起動状態
-
サービス呼出アクティビティから呼び出すサービスアダプタが未配備状態
-
サービス呼出アクティビティから呼び出すサービスアダプタでのデータ変換処理の失敗
-
同期のサービス部品呼び出し処理でのエラー(サービス部品の宛先不正,サービス部品の停止によるHTTPエラー,通信タイムアウト,通信障害など)
-
ビジネスプロセスの互換性の使用有無がOFFの場合,非同期のサービス部品呼び出し処理でのエラー(キューの宛先不正,キューへの送信処理の失敗など)
-
DBアダプタを使用してDBアクセスを行う処理でのエラー(DBアクセスエラー,SQLエラー,DB Connectorの設定不正など)
-
SOAPのサービス部品呼び出し処理で,Webサービスから応答したフォルト電文が,HCSCサーバでフォルトとして扱うための条件を満たしていない
サービス部品から返されたフォルト電文がフォルトとして扱われる条件については,マニュアル「サービスプラットフォーム 解説」の「4.3.5 SOAP Fault動作定義ファイルによるフォルトのキャッチ」を参照してください。
なお,該当するサービス呼出アクティビティの状態は,ビジネスプロセスの互換性の使用有無(HCSCサーバセットアップ定義のbp-status-compatible)がOFFの場合は,エラー状態または実行中状態のままとなり,ONの場合は実行中状態のままとなります。
エラーが発生した場合の対処手順を次に示します。
-
障害情報に従って,サービスアダプタ,サービス部品などのエラー原因を取り除きます。
-
cscpireexecコマンドでプロセスインスタンスを再実行して,サービス部品を再呼び出しします。このとき,サービス部品に対して同一メッセージの2回目の呼び出しが行われるため,サービス部品側で重複チェックを実施して2回目の呼び出しを矛盾なく処理できる必要があります。
(5) サービス呼び出し時のサービス部品からのフォルト
HCSCサーバがサービス部品に対して同期呼び出しを実行したときに,サービス部品がフォルト電文を応答した場合の対処方法を次に示します。
- 対処方法
-
- フォルトコネクションを定義している場合
-
定義したフォルトコネクションに従って,処理が実行されます。
- フォルトコネクションを定義していない場合
-
プロセスインスタンスがフォルト終了状態となり,プロセスインスタンスの実行が停止します。サービス部品がフォルトを応答しないような電文を再送信します。
- 注意事項
-
サービス呼び出し時のサービス部品から返されたSOAP Faultがフォルトの場合は,cscpireexecコマンドではプロセスインスタンスを再実行できません。これは,定義したフォルトコネクションに従ってビジネスプロセスの処理を実行したり,プロセスインスタンスの実行が停止したりするため,ビジネスプロセスの状態が中断した状態のままとはならないからです。
(6) ビジネスプロセス実行コマンドの実行時のエラー
ビジネスプロセス実行コマンド(csmexecutebpコマンド)の実行時に発生した例外のログ出力と,障害情報について説明します。
(a) 例外ログ
ビジネスプロセス実行コマンドの実行時に発生した例外は,例外ログに出力されます。例外ログの出力形式,出力内容,出力情報の変更について説明します。
- 例外ログの出力形式と出力内容
-
例外ログの出力形式を次の図に示します。
図7‒185 例外ログの出力形式(ビジネスプロセス実行コマンド) 図中の項目ごとに,例外ログに出力される内容を次の表に示します。
表7‒264 例外ログに出力される内容(ビジネスプロセス実行コマンド) 項目
内容
番号
例外ログの出力通番が表示されます。
日付
例外ログの取得日付がyyyy/mm/ddの形式で出力されます。
-
yyyy:西暦年
-
mm:月
-
dd:日
時刻
例外ログの取得時刻がhh:mm:ss.SSSの形式で出力されます。
-
hh:時
-
mm:分
-
ss:秒
-
SSS:ミリ秒
ローカル時刻でミリ秒単位の時刻を示します。
製品ID
製品を特定するための識別子として,ビジネスプロセス実行コマンドを示す「csmexecutebp」が表示されます。
pid
プロセスを識別するためのIDが出力されます。
tid
スレッドを識別するためのIDが出力されます。
ID
空白
スタックトレース情報
スタックトレース情報が出力されます。
CRLF
レコード終端符号が出力されます。
-
- 例外ログの出力先
-
例外ログの出力先を次に示します。
<サービスプラットフォームのインストールディレクトリ>\CSC\log\msg\csmexecutebp
例外ログのログファイル名を次の表に示します。
表7‒265 例外ログのログファイル名(ビジネスプロセス実行コマンド) ログファイルの出力モード
ログファイル名
ラップアラウンドモードの場合
csmexecutebp_exp_<面数>.log
シフトモードの場合
csmexecutebp_exp_.log
例外ログのローテーションは,次のどちらかの条件に合致した際に実行されます。
-
指定したローテーション時刻に達したとき
ローテーション時刻の指定方法は,Application Serverの設定に従います。詳細については,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「2.2.3 usrconf.properties(J2EEサーバ用ユーザプロパティファイル)」を参照してください。
-
指定したファイルサイズに達したとき
また,例外ログの出力先,ファイルサイズおよびファイル面数は,次に示すビジネスプロセス実行コマンド定義ファイルのプロパティで変更できます。これらのプロパティについては,マニュアル「サービスプラットフォーム リファレンス」の「3.21.1 ビジネスプロセス実行コマンド定義ファイル」を参照してください。
-
exceptionlog-filepath=例外ログの出力先パス
-
exceptionlog-filesize=例外ログの1ファイル当たりの上限サイズ
-
exceptionlog-filenum=例外ログの最大面数
-
- 例外ログの初期化処理に関する注意事項
-
例外ログのロガー初期化に失敗した場合,メッセージログに警告メッセージKDEC11407-Wが出力されてコマンド処理を継続します。この場合,ビジネスプロセス実行コマンドの処理では例外ログは出力されません。
(b) 障害発生時の動作
ビジネスプロセス実行コマンドで発生する障害の原因と対処を説明します。
-
コマンドおよび定義ファイルに必須オプションが指定されていない場合
次のどちらかに該当する場合は,必須オプションが指定されていません。エラーメッセージKDEC11405-Eをコンソールに出力して,コマンドが異常終了します。
-
コマンドの-processnameオプションも,ビジネスプロセス実行コマンド定義ファイルのprocess-nameプロパティも指定されていない
-
コマンドの-operationオプションも,ビジネスプロセス実行コマンド定義ファイルのbp-operation-nameプロパティも指定されていない
-
-
コマンド引数に指定したオプション値が不正な場合
エラーメッセージKDEC11406-Eをコンソールに出力して,コマンドが異常終了します。主なエラー原因を次に示します。
-
-telegramオプションに指定したファイルが存在しない
-
-fオプションに指定したファイルが存在しない
-
-processnameオプションの指定値が空文字
-
-operationオプションの指定値が空文字
-
-
ビジネスプロセス実行コマンド定義ファイルに指定した値が不正である場合
エラーメッセージKDEC11408-Eをコンソールに出力して,コマンドが異常終了します。
-
標準の同期受付(Webサービス)の呼び出しに失敗した場合
エラーメッセージKDEC11409-Eをコンソールに出力して,コマンドが異常終了します。
-
標準の同期受付(Webサービス)に渡すパラメタの値が不正な場合
エラーメッセージKDEC11410-Eをコンソールに出力して,コマンドが異常終了します。
また,メッセージログには,エラー原因に応じて次に示すメッセージが出力されます。
-
パラメタの値が指定可能な文字数を超えている場合:KDEC00012-E
-
パラメタの値に使用できない文字が含まれている場合:KDEC00010-E
これらのメッセージに出力されるパラメタ名と,コマンドで指定したパラメタとの関連を次に示します。
メッセージ引数に出力されるパラメタ名
ビジネスプロセス実行コマンドのパラメタ
cscServiceName
ビジネスプロセス名
cscServiceOperationName
ビジネスプロセスのオペレーション名
cscCorrelationID
クライアント相関ID
例えば,メッセージログに出力されたメッセージがKDEC00012-Eで,メッセージ引数に出力されたパラメタ名が「cscServiceName」の場合,ビジネスプロセス実行コマンドに設定した「ビジネスプロセス名」の値が,指定可能な文字数を超えていることを示しています。
-
-
HCSCサーバ内で障害が発生した場合
エラーメッセージKDEC11410-Eをコンソールに出力して,コマンドが異常終了します。