Upload
phunghanh
View
288
Download
8
Embed Size (px)
Citation preview
Operation Knowhow
MONMSGについてのおさらいMONMSGについてのおさらいてのおさらてのおさら
初 版 2007/07/02第2版 2008/03/24第2版 2008/03/24
1
Copyright 2007 CYFLEX L.L.C.
Operation Knowhow
MONMSGとは?(1/5)
CLプログラムのプログラム・メッセージキューに送られてくるメッセージを監視CLプログラムのプログラム メッセ ジキュ に送られてくるメッセ ジを監視します。CLプログラムの実行中に発生するエラーや例外的な状況をメッセージに基づいて処理したい時に使用します。いて処理したい時に使用します。
例えば、
・ファイルの存在チェックを行い、存在しなければ作成する。存在 を行 、存在 作成す 。・ファイルを削除できなくても無視する。・バックアップでバックアップできないファイルがあっても無視する。・ファイルを最後まで読み込んだら終了する。・すでにサブシステムが起動していたら無視する。・すでにライブラリーリストに追加されていたら無視する。
MONMSGを使用することにより バッチ処理の自動化を行うことができますMONMSGを使用することにより、バッチ処理の自動化を行うことができます。
Copyright 2007 CYFLEX L.L.C.2
Operation Knowhow
MONMSGとは?(2/5)
しかし、MONMSGは無条件に使用できるものではなく、以下の条件があります。
◎メッセージタイプによりモニタリングできるものとできないものがあります。
◎メッセージIDによりモニタリングできるものとできないものがあります。
◎RPGの場合は、MONMSGはできません。◎ PGの場合は、MONMSGはできません。
Copyright 2007 CYFLEX L.L.C.3
Operation Knowhow
MONMSGとは?(3/5)
MONMSGが出来るメッセージタイプは、*NOTIFY,*ESCAPE,*STATUSです。
メッセージ・タイプ MONMSG可否
*INFO 通知メッセージ 又は 情報メッセージ ×INFO 通知 ッセ ジ 又は 情報 ッセ ジ ×
*INQ 照会メッセージ ×
*COMP 完了メッセージ ×*COMP 完了メッセ ジ ×
*DIAG 診断メッセージ ×
*NOTIFY 通知例外メッセ ジ ○*NOTIFY 通知例外メッセージ ○
*ESCAPE エスケープ例外メッセージ ○
要求メ セ ジ*RQS 要求メッセージ ×
*STATUS 状況例外メッセージ ○
Copyright 2007 CYFLEX L.L.C.4
Operation Knowhow
MONMSGとは?(4/5)MONMSGが可能なメッセージは、1行目でF1を押してヘルプ画面を表示し、エラーメッセージのところを参照することでわかります。マニュアルは、プログラム便覧を参照してください。アルは、 グラ 便覧を参照してくださ 。
Copyright 2007 CYFLEX L.L.C.5
Operation Knowhow
MONMSGとは?(5/5)コマンドに関係なく共通にモニターリング可能なメッセージは、以下のとおりです。
CPF0001 E &1 コマンドにエラーが見つかった。
CPF0010 E コマンド &1 はサポートされていない。
CPF6801 E ユーザーが &1 を押した時に、コマンド・プロンプトが終了した。
CPF7D41 E ログ記録順援助要求のさいにエラーが生じた。
CPF7D42 E データベースの操作を実行するさいにエラーが生じた。
CPF9803 E ライブラリー &3 のオブジェクト &2 を割り振ることができない。
CPF9805 E ライブラリ &3 のオブジ クト &2 は破壊されているCPF9805 E ライブラリー &3 のオブジェクト &2 は破壊されている。
CPF9807 E ライブラリー・リストの 1 つまたは複数のライブラリーが削除された。
CPF9808 E ライブラリー・リストに 1 つまたは複数のライブラリーを割り振ることができない。
CPF9810 E ライブラリー &1 が見つからない。CPF9810 E ライブラリ &1 が見つからない。
CPF9830 E ライブラリー &1 を割り当てることができない。
CPF9845 E ファイル &1 をオープンするさいにエラーが生じた。
CPF9846 E ライブラリー &2 のファイル &1 を処理するさいにエラーが生じた。
CPF9871 E 処理を行うさいにエラーが生じた。
CPF9901 S 要求チェック。&1 は &3 の &2 によってモニターされていない。
CPF9999 E 機能チェック。&1 は &2 によってステートメント &5、命令 &3でモニターされていない。
Copyright 2007 CYFLEX L.L.C.6
Operation Knowhow
MONMSG不可メッセージへの対応例(1/3)
●1本のテープに入りきれない場合、残りのバックアップはあきらめて後続を処理したい。
PGM
CHGJOB INQMSGRPY(*SYSRPYL)
SAVLIB LIB(xxxxx) DEV(TAP01) SEQNBR(1) CLEAR(*ALL)( ) ( ) ( ) ( )
MONMSG MSGID(CPF3794) EXEC(DO)
SNDPGMMSG MSG(‘*** BACKUPは不成功です。***’)
ENDDO
ENDPGMENDPGM
①CPA4088に対して自動応答する。(MONMSG不可のため)
②CPF3794をMONMSGする。
Copyright 2007 CYFLEX L.L.C.7
Operation Knowhow
MONMSG不可メッセージへの対応例(2/3)CPA4088に対しては、MONMSGをかけることはできません。「C」を自動応答させる。
メッセージ ID . . . . : CPA4088 重大度 . . . . . . . . : 99
メッセージ・タイプ . . : 照会
送信日 . . . . . . . : 07/06/07 送信時刻 . . . . . . : 17:38:51
メッセージ. . . . . : (C G) 装置 TAP01 に次のテープ・ボリュームを装填してくださ
い。
原因--テープ・ボリュームの終りに達しました。
回復手順 Cを入力して処理を取り消すか あるいは装置 TAP01 に次のテ プ回復手順--Cを入力して処理を取り消すか,あるいは装置 TAP01 に次のテープ・
ボリュームを取り付け,Gを入力して処理を続行してください。
メッセージに応答するための選択可能な項目:
G -- 処理の続行。
C -- 処理の取消し。
終り
応答 . . . . : C
続行するためには,実行キーを押してください。
Copyright 2007 CYFLEX L.L.C.8
Operation Knowhow
MONMSG不可メッセージへの対応例(3/3)CPA4086の場合も、MONMSGをかけることはできません。「C」を自動応答させる。
メッセージ ID . . . . : CPA4086 重大度 . . . . . . . . : 99
メッセージ・タイプ . . : 照会
送信日 . . . . . . . : 07/06/07 送信時刻 . . . . . . : 17:53:48
メッセージ. . . . . : (C R) 装置 TAP01 が作動不能であるか,あるいは次のボリュー
ムが取り付けられていない。
原因--装置 TAP01 が作動可能でないか,あるいは次のテープ・ボリュームが原因 装置 TAP01 が作動可能でないか,あるいは次のテ プ ボリュ ムが
TAP01 に取り付けられていません。
回復手順--次の1つを実行してください。
-- 処理を取り消すためには,Cを入力する。
装置 TAP01 を作動可能にし Rを入力してオ プン操作をやり直す-- 装置 TAP01 を作動可能にし,Rを入力してオープン操作をやり直す。
-- 次のボリュームを装置 TAP01 に取り付けて,Rを入力して,オープン操作を
やり直す。
メッセージに応答するための選択可能な項目:
R -- ボリュームのオープン操作のやり直し。
続く ...
応答 . . . . : C
続行するためには 実行キーを押してください
Copyright 2007 CYFLEX L.L.C.9
続行するためには,実行キーを押してください。
Operation Knowhow
QCMDEXCのエラーハンドリング(1/3)
RPGでQCMDEXCを利用してコマンドを実行している場合は、MONMSGが出来ないためエラ が発生すると応答待ちになりますエラーが発生すると応答待ちになります。もし、CLみたいにエラーをモニターリングするには以下の方法があります。
①コマンドの実行は、CLで行う。
②CALL QCMDEXCに標識を立てる。
③QCMDEXCの代わりにQCAPCMDを使用する③QCMDEXCの代わりにQCAPCMDを使用する。
Copyright 2007 CYFLEX L.L.C.12
Operation Knowhow
QCMDEXCのエラーハンドリング(2/3)RPGの中でQCMDEXCを使用してコマンドを実行している場合、エラーが発生するとメッセージ待ちになります。
C CALL 'QCMDEXC' 50
C PARM CMD CMDSTR
C PARM 64 CMDLENC PARM 64 CMDLEN
56桁(LO)に標識をセットをするとメッセージ待ちにはな
Copyright 2007 CYFLEX L.L.C.13
らない。
Operation Knowhow
QCMDEXCのエラーハンドリング(3/3)
QCMDEXCの代わりにQCAPCMDを使用した例
他で使用中のためCLRPFMが失敗した例
QCAPCMDは 実行前に構文チ クQCAPCMDは、実行前に構文チェックを行うのでエラーハンドリングを行うことができます。
Copyright 2007 CYFLEX L.L.C.14
Operation Knowhow
RPGでの例外エラー対応(2/3)しかし、*PSSRを定義しているにもかかわらず応答待ちになることがあります。RPGの暗黙のOPENはプログラム処理(C仕様書)の前に実行されるのでエラールーチンにはいきません。(*PSSRが効かない)
対応:RPGを実行する前に、CHKOBJでチェックする。暗黙のOPENをやめて自分でOPENする。
ILE RPGの場合はILE RPGの場合はUSROPN
Copyright 2007 CYFLEX L.L.C.16
Operation Knowhow
Cのランタイム関数を使用した例NEW
ILE RPGでCのランタイム関数を使用することにより、メッセージのハンドリングを行うことができます。
Copyright 2007 CYFLEX L.L.C.18
Operation Knowhow
参考:メッセージIDの体系
CPA ~ CPZ オペレーティング・システムからのメッセージ
CBE ~ CBX COBOL メッセージ
CSC COBOL 言語構文検査機能メッセージ
LBE ~ LSC COBOL メッセージ
MCH ライセンス内部コード・メッセージライセン 内部 ド ッセ ジ
QRG RPG 言語メッセージ
RPG ~ RXT RPG 言語メッセージ
SBX SSC COBOL メ セ ジSBX ~ SSC COBOL メッセージ
SQL 構造化照会言語 (SQL) メッセージ
Copyright 2007 CYFLEX L.L.C.19