メニューボタン
サポートチーム便り2022.04.13

システムメッセージを監視したい

Question

DSPLOGコマンドでシステムメッセージを確認していますが、OSの標準機能を使用して、特定のシステムメッセージを自動で監視する方法はありませんでしょうか。

Answer

STRWCH(監視の開始)コマンドを使用すると、システムに特定のメッセージが出た時に、監視プログラムを実行する事が出来ます。

そのプログラム内で、指定したユーザーなどにメッセージを送信する事などが可能です。

手順
※この例では、システムメッセージ(QHST)に送信される、CPF2234とCPI1468を監視します。

  1. 監視プログラムを作成します。

    ※パラメータ部分
    最初の4つのパラメータは必須です。(監視プログラムの予約パラメータです)

                 PGM        PARM(&TYPE &SESSION &ERROR &DATA)              
                                                                           
     /* Iuput Parameters */                                                
                 DCL        VAR(&TYPE) TYPE(*CHAR) LEN(10)                 
                 DCL        VAR(&SESSION) TYPE(*CHAR) LEN(10)              
                 DCL        VAR(&ERROR) TYPE(*CHAR) LEN(10)                
                 DCL        VAR(&DATA) TYPE(*CHAR) LEN(1024)               
                                                                           
     /* Receive Data */                                                    
                 DCL        VAR(&MSGID) TYPE(*CHAR) STG(*DEFINED) LEN(7) + 
                              DEFVAR(&DATA 5)                              
     
                 MONMSG     MSGID(CPF0000)   

    ※メッセージ監視部分

    /* CPF2234 Password Error */                                         
                 IF         COND((%SST(&TYPE 1 6) = '*MSGID') & (&MSGID + 
                              = 'CPF2234')) THEN(DO)                      
                 SNDMSG     MSG('Signon Password Error') TOUSR(BELLDATA)    
                 GOTO       CMDLBL(EXIT)                                  
                 ENDDO                                                    
                                                                          
     /* CPI1468 JOBTBL */                                                 
                 IF         COND((%SST(&TYPE 1 6) = '*MSGID') & (&MSGID + 
                              = 'CPI1468')) THEN(DO)                      
                 SNDMSG     MSG('System job tables nearing capacity.') +  
                              TOUSR(BELLDATA)                               
                 GOTO       CMDLBL(EXIT)                                  
                 ENDDO                                                    

    監視対象のメッセージを受取った場合のサンプルロジックです。

  2. 作成したプログラムを、任意のライブラリーへコンパイルします。

        CRTCLPGM PGM(BELL/@WCH_PGM01) SRCFILE(BELL/QCLSRC)  

  3. STRWCHコマンドで、監視するメッセージIDを登録します。

    STRWCH SSNID(@WCH001) WCHPGM(BELL/@WCH_PGM01) WCHMSG((CPF2234) (CPI1468))
            WCHMSGQ((*HSTLOG))          
    ※1つのSTRCWHコマンドで、最大5つのメッセージIDを監視できます。
    ※監視するメッセージIDが多い場合には、複数のSTRCWHコマンドで監視します。

  4. 登録した監視を確認します。

         WRKWCH WCH(*STRWCH)
    スクリーンショット
    「5=表示」で詳細を確認できます。
    スクリーンショット
    登録した監視は、システムの再起動を実行しても ACTIVE で残っています。終了するまで、監視を継続します。 → 監視終了コマンド: ENDWCH


ご参考サイト

by あすと

あわせて読みたい記事

PAGE TOP