AS400 MSGW返答判断表|C・I・R・D・Gを返す前に見るポイント

AS400 / IBM i の保守で MSGW を見つけた時、初心者が一番怖いのは「よく分からないまま返答してしまうこと」です。MSGWは、ジョブがメッセージ待ちで止まっている状態です。止まっているから早く何か返したくなりますが、ここで焦ると二次災害になります。

このページでは、MSGWでよく見る CIRDG の返答を、現場目線で整理します。特に DG は危険です。リトライで復旧できたかもしれない処理を、戻せない状態にしてしまうことがあります。

最初にやること MSGWを見つけたら、まず7番で詳細メッセージを確認します。次にジョブログ全体を見て、何が原因で止まったのかを確認します。返答はその後です。

MSGW返答判断表

返答意味使う場面の考え方危険ポイント
Cキャンセル処理を止める判断。後続処理に流してはいけない時に使うことがあります。キャンセル後にどこまで処理済みかを確認しないと、リカバリー範囲を間違えます。
I無視無視しても業務影響がない、または想定済みのメッセージである場合に検討します。本当に無視してよいかを確認せずに返すと、異常データを後続処理に流すことがあります。
Rリトライ一時的なロック、タイミング、待ち状態などで再実行すれば進む可能性がある時に検討します。根本原因を見ないまま何度もRを返すと、同じエラーを繰り返します。
Dダンプを取りキャンセル調査用にダンプを取って処理を止める返答です。リトライで復旧できた可能性を消すことがあります。初心者が勝手に返すのは危険です。
G強制的に処理を進める系の返答RPGがこけた状態で処理を継続させるような場面で出ることがあります。不完全な状態のまま後続処理を進める可能性があります。かなり怖い返答です。

初心者が一番やってはいけないこと

初心者がMSGWで一番やってはいけないのは、詳細メッセージもジョブログも見ないで、勝手に D を返したり、ジョブを強制終了したりすることです。WRKACTJOBの画面で4番を使ってジョブを終わらせるような対応も、状況によっては危険です。

昔、仕事ができない人が勝手に D を返して大惨事になったことがあります。リトライで復旧できたかもしれない処理を、勝手にダンプキャンセルしてしまった。こうなると、本来なら楽に戻せた処理が、データリカバリーや後続処理の調整まで必要になることがあります。

Gも危険な返答として見る

G も危険です。RPGがこけた時に、強制的に処理を進めるような意味合いで使われることがあります。処理を進めるということは、一見すると復旧したように見えるかもしれません。しかし、実際には途中まで不正な状態で処理が進んでしまう可能性があります。

販売管理システムでは、受注、出荷、在庫引当、売上計上、請求、外部連携がつながっています。入力系やデータ作成系の途中で異常が起きているのに、Gで進めてしまうと、後続処理でさらに分かりにくい不整合になることがあります。Gは「処理を進められるから便利」ではなく、「本当に進めてよいかを説明できる人だけが判断するもの」と考えた方が安全です。

MSGWを見つけた時の確認順

  1. WRKACTJOBでMSGWになっているジョブを確認する
  2. 7番で詳細メッセージを見る
  3. ジョブ名、ユーザー、番号をメモする
  4. ジョブログ全体を確認する
  5. 最後のエラーだけでなく、直前のCPF、RNX、MCHなどを見る
  6. 業務影響を確認する
  7. 返答前に上長または担当者へ共有する

販売管理システムで特に怖いMSGW

販売管理システムでMSGWが出た時に特に怖いのは、外部インターフェース系の処理です。外部との送受信が止まっている場合、取引先、店舗、物流、会計連携などに影響が出ることがあります。夜間バッチやデータ連携でMSGWになっていると、翌朝の業務開始に影響することもあります。

この場合、単に「ジョブが止まっている」ではなく、「どの業務データが止まっているのか」「後続処理は動いているのか」「再実行できるのか」「二重処理にならないか」を確認します。MSGWの返答は、業務影響とセットで考える必要があります。

若手に伝えたいMSGW対応の基本

若手にMSGWを教えるなら、まず「見つけたら上長に報告」と伝えます。今どきは監視システムで自動通知されることも多いですが、手作業で見つけた場合でも、勝手に返答しないことが大事です。

MSGWは、画面上ではただ止まっているだけに見えます。でも裏側では、プログラム、ファイル、ライブラリ、外部連携、バッチ処理、後続処理が関係しています。返答ひとつでリカバリーが楽になることもあれば、逆に二次災害になることもあります。

MSGW対応で残すメモ

項目残す理由
ジョブ名どの処理が止まったかを特定するため
ユーザー誰のジョブ、またはどの実行ユーザーかを確認するため
番号ジョブを一意に特定するため
メッセージIDCPF、RNX、MCHなどの原因を追うため
返答内容C、I、R、D、Gのどれを返したかを後から確認するため
業務影響受注、出荷、在庫、売上、請求、外部連携への影響を整理するため

関連して読む記事