MONMSGって何ですか?どのように使用するものですか?
Question
CLプログラミングでMONMSGを使用すると、エラーをスルーしたり、エラーの内容で処理をハンドリングできると聞きました。 MONMSGはどのように使用するものでしょうか?
Answer
メーカーのナレッジセンターには以下の記載があります。
メッセージ・モニター (MONMSG)
https://www.ibm.com/support/knowledgecenter/ja/ssw_ibm_i_73/cl/monmsg.htm
メッセージ・モニター(MONMSG)コマンドは,このコマンドが使用されているプログラムのプログラム・メッセージ待ち行列に送られるエスケープ・メッセージ,通知メッセージ,および状況メッセージをモニターするために使用されます。その他のメッセージ・タイプ(完了,診断など)はモニターできません。
MONMSGはCLプログラムで使うと大変便利なものです。
例えば、バックアップ用のCLプログラムをジョブスケジュールで登録しておき、時間になって起動するような仕掛けを作っていたとします。
投入は朝の9:00で実際の保管は業務終了後の21:00にします。
1時間毎にテープをチェックし、担当者へセットされていないとメッセージを飛ばすとします。
簡単なサンプルとしては以下のようなSNDMSGでシステム担当者へ飛ばしますが、SNDSMTPEMMコマンドを使用するとeメールでもメッセージを送信することも可能です。
サンプルではCPF6700としてワイルドカード的な使用としています。
もう少し、詳細にMONMSGできるメッセージを確認したい場合として、例えばCHKTAPでしたら、コマンド入力画面でCHKTAPと入力し、F4キーを押します。
そこで、1行目の「テープ検査 (CHKTAP)」にカーソルを移動し、F1を押します。
PgDnして最後を見てください。
MONMSGできるメッセージは複数あります。
もし、CHKTAPでVOL-IDが異なっている場合にCPF6720を拾うことも可能です。
例外処理や、正しくセットされた時のハンドリングなどを入れておくことで、より完成度を増すこともできます。
夜間処理でテープがセットされてなく、「翌朝に処理が止まっていた」なんてことがあるかと想像すると、ただでさえ会社へ行くのが億劫なのに更に嫌になってしまいます。
MONMSGを駆使して、「うっかり」の人員的ミスを「しっかり」防ぐようにしてください。
by けやきのじぃじ