Hitachi

uCosminexus Batch Job Execution Server 使用の手引


6.5 メッセージ制御機能での障害対応

バッチジョブ実行システムでは,ネットワーク障害が発生した場合でも業務を終わらせることができるように,応答要求メッセージを適切に処理するコマンドを提供する。障害発生時は,OSにログインしてコマンドで応答を入力することで処理を続行できる。

なお,リトライ可能と判断しているエラーについては,COBOL2002で作成したCOBOLアプリケーション,bjexm_messageコマンドまたはメッセージ出力用カタログドプロシジャを異常終了させないでリトライを繰り返す。通常メッセージ出力については,3回まで動作を実施する。その後のリトライは行わないで,かつ異常終了させないでジョブを続行させる。応答要求メッセージについては,MESSAGE_RETRY_TIMEOUTパラメータの指定によって,リトライ時間を指定できる。通信処理などで異常が発生したことについては,バッチジョブ実行システムの実行ログに記録を残して,あとから障害解析ができるようにする。

また,バッチジョブの仕掛かり中に障害などによって処理系の切り替えが発生した場合,バッチジョブ実行システムは該当するジョブを継続処理しない。このような場合には,中断されたバッチジョブを切り替え後の処理系で再実行すること。

障害が発生した場合の対処方法を次に示す。

(1)JP1/IM - Viewにメッセージが表示されない場合

JP1イベントの送信処理でリトライが発生し,JP1/IM - Viewにメッセージが表示されないで,COBOLアプリケーション,bjexm_messageコマンドまたはメッセージ出力用カタログドプロシジャが停止したままの状態になる場合がある。この場合に考えられる原因と対処方法を次に示す。

  • バッチジョブ実行システムが稼働するホストで,JP1/Baseのイベントサービスが稼働していない。

    JP1/Baseのイベントサービスを起動する。起動方法については,JP1のマニュアルを参照のこと。

  • JP1_HOSTNAMEパラメータの指定が誤っている。

    すべてのジョブを終了したあと,設定ファイルを修正してbjexpdを再起動し,ジョブを再実行する。

  • JP1IM_MANAGER_HOSTパラメータの指定が誤っている。

    すべてのジョブを終了したあと,設定ファイルを修正してbjexpdを再起動し,ジョブを再実行する。

なお,JP1/IM - Viewにメッセージが表示されない場合でも,bjexlsmsgおよびbjexchmsgコマンドを使用して応答を入力できる。入力手順については,「(2) JP1/IM - Viewから応答が入力できない場合」を参照のこと。

(2)JP1/IM - Viewから応答が入力できない場合

バッチジョブ実行システムとJP1/IM - Manager間で,ネットワーク障害の発生またはJP1/IM - Managerで応答待ちイベントの滞留が解除された場合などによって,JP1/IM - Viewから応答が入力できない場合,bjexlsmsgおよびbjexchmsgコマンドを使用し,次に示す手順で応答を入力する。

1.bjexlsmsgコマンドで応答要求メッセージ一覧を表示

ジョブ識別子が000001のジョブで,応答要求メッセージを出力済みの場合の表示例を次に示す。

[図データ]

2.bjexchmsgコマンドで応答を入力

「応答してください。」のメッセージに対して「y」と応答する場合,bjexchmsgコマンドで次に示すように指定する。

  • -nオプションにbjexlsmsgコマンドで表示されるMESSAGE-NOを指定

  • -rオプションに応答として"y"を指定

    [図データ]

応答を入力しないで応答要求メッセージを解除して,COBOL2002で作成したCOBOLアプリケーション,bjexm_messageコマンドまたはメッセージ出力用カタログドプロシジャを終了する場合は,bjexchmsgコマンドで次に示すように指定する。

  • -nオプションにbjexlsmsgコマンドで表示されるMESSAGE-NOを指定

  • -dオプションを指定

    [図データ]

(3)JP1/IM - Viewの[応答入力]画面に表示される状態が,「NO LONGER MANAGED BY BJEX」となる場合

応答要求メッセージが出力済みの状態で次に示す内容が発生した場合,バッチジョブ実行システムは,出力済みの応答待ちイベントに対してキャンセルイベントを送信する。JP1/IM - Viewで滞留している応答待ちイベントは,キャンセルイベントによって滞留が解除される。

  • JP1/AJSからの強制終了でbjexecを終了した。

  • bjexchmsgコマンドで応答入力または解除を行った。

  • bjexpdctlコマンドでbjexpdを停止した。

ネットワーク障害でキャンセルイベントがJP1/IM - Managerに到達しなかった場合は,JP1/IM - Viewに応答待ちイベントが滞留したままになる。これらの応答待ちイベントに対してJP1/IM - Viewで[応答入力]画面を開くと,表示される状態が「NO LONGER MANAGED BY BJEX」となる。このような応答待ちイベントが滞留している場合は,JP1/IM - Viewから手動で滞留を解除する。

手動で解除する手順については,JP1のマニュアルを参照のこと。

なお,bjexecの終了時は,EXEC要素に指定したアプリケーションが出力した応答待ちイベントに対してだけキャンセルイベントを出力する。EXEC要素に指定したアプリケーションが生成する子プロセスが出力した応答待ちイベントに対しては,キャンセルイベントを出力しない。