LOGREC(SYS1.LOGREC)は、ハードウェアおよびソフトウェア(主にOS)のエラー・ログを記録するデータセットです。EREP(Environmental Record Editing and Printing Program)というユーティリティーを使うことによって、記録されているレコードを編集し印刷することができます。
LOGRECデータセットのレコード内容を印刷する(MVS)
SFT(Softwareエラー)レコードのタイトル・リスト作成
1 2 3 4 5 6 7 |
//EREPLIST EXEC PGM=IFCEREP1, // PARM='TYPE=S,PRINT=SD,ACC=N' //SERLOG DD DISP=SHR,DSN=SYS1.LOGREC //TOURIST DD SYSOUT=* //EREPPT DD SYSOUT=* //SYSIN DD DUMMY // |
エラーが起きたOSのモジュール名やABENDコードなどのタイトル情報を、リストアップします。
SFT(Softwareエラー)レコードのフォーマット
1 2 3 4 5 6 7 |
//SFTRPRT EXEC PGM=IFCEREP1, // PARM='TYPE=S,PRINT=PS,DATE=(09268-09270),ACC=N' //SERLOG DD DISP=SHR,DSN=SYS1.LOGREC //TOURIST DD SYSOUT=* //EREPPT DD SYSOUT=* //SYSIN DD DUMMY // |
エラー・レコードの内容を、編集してプリント・アウトします。DATEパラメーターで、レコードが記録された日付で印刷範囲を絞り込むこともできます。
デバイスのユニット・チェック・レコードのフォーマット
1 2 3 4 5 6 7 |
//OBRRPRT EXEC PGM=IFCEREP1, // PARM='TYPE=O,DEV=(33XX,34XX,35XX),PRINT=PS,ACC=N' //SERLOG DD DISP=SHR,DSN=SYS1.LOGREC //TOURIST DD SYSOUT=* //EREPPT DD SYSOUT=* //SYSIN DD DUMMY // |
DISK(33xx)とTAPE(34xx/35xx)装置のOBRレコード(unit checks)を、編集してプリントアウトします。プログラム側で発行したCCW(チャネル・コマンド)に誤りがあってのユニット・チェック・レコードなどもあるため、必ずしもレコードが記録されたこと=ハードウェア障害が起きた、というわけではありません。
LOGRECデータセットのバックアップ(MVS)
システム稼働中にLOGRECが一杯になった時などは、取り急ぎ順次データセットへ書き出し、後からヒストリー・データセットによってレポートすることもできます。
ヒストリー・データセットへのコピー
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
//BACKUP EXEC PGM=IFCEREP1, // PARM='CARD' //SERLOG DD DISP=SHR,DSN=SYS1.LOGREC //ACCDEV DD DISP=(,CATLG),DSN=SYS1.LOGREC.HISTORY, // UNIT=SYSDA,VOL=SER=??????,SPACE=(CYL,(10,10),RLSE), // DCB=(RECFM=VB,BLKSIZE=27998) //TOURIST DD SYSOUT=* //EREPPT DD SYSOUT=* //SYSIN DD * PRINT=NO ACC=Y ZERO=N ← ZERO=Y で元のLOGRECがクリアーされる。 ENDPARM // |
EREPを使い、LOGRECデータセットの内容を、順次編成データセットへ書き出します。コピーされた順次データセットが、LOGRECのHISTORYデータセットです。ZEROパラメーターに「Y」を指定すると、元のLOGRECデータセットはクリアーされます。
持っている資料には、「LOGRECはDSORG=PSUで中にDASD上のアドレスを持っているようである。そのためGENERで単純にコピーしても利用できない。」というメモがありました。PSだけどGENERでお手軽にコピーしても、それを使用することはできないはずです。面倒でもEREPを使う必要がありそうです。
ヒストリー・データセットからのレポート作成
1 2 3 4 5 6 7 8 9 |
//OBRRPRT EXEC PGM=IFCEREP1, // PARM='TYPE=O,DEV=(33XX,34XX,35XX),PRINT=PS,ACC=N,HIST=Y' //ACCIN DD DISP=SHR,DSN=SYS1.LOGREC.HISTORY2 //DIRECTWK DD UNIT=SYSDA,SPACE=(CYL,10,,CONTIG) //TOURIST DD SYSOUT=* //EREPPT DD SYSOUT=* //SYSIN DD DUMMY // // |
ヒストリー・データセットからのレポート作成時は、DD名が変わり、追加の一時的データセット定義が必要になりますが、同じレポートを作成することができます。
LOGRECデータセットのクリアー(再初期化)(MVS)
1 2 3 4 5 6 7 8 |
//IFCDIP00 EXEC PGM=IFCDIP00 //SERERDS DD DISP=OLD,DSN=SYS1.LOGREC // // 新規にLOGRECを割り振るには次のようにします。 SPACEパラメーターにCONTIGの指定を忘れずに! //SERERDS DD DSN=SYS1.LOGREC,DISP=(,CATLG), // VOL=SER=M43RES,UNIT=SYSDA,SPACE=(CYL,10,,CONTIG) |
テスト系システムなど、LOGRECデータを重要視しなくてもよいのであれば、コピーせずにLOGRECデータセットをイニシャライズできます。新規にLOGRECを割り振る場合にも使用します。稼働中のシステムのLOGRECデータセットのサイズを拡張するなどで、新たに割り振りたい場合は、既存のLOGRECデータセットの名前をIEHPROGMユーティリティーでリネームして、リネーム後直ちにIFCDIP00で割り振り初期化します。その間はLOGRECデータセットがない状態になりますが、エラーが起きたときの記録なのでSMFほどナーバスになる必要はないでしょう。どうしてもこだわる(100%の完璧を期す)なら、別DSNで作成し、IEASYSxxのLOGRECパラメーターで別DSNを指すように変え、IPL後に改めて作成し、またIEASYSxxのLOGRECパラメーターを戻すなどを行えばいいでしょう。
現在のz/OSでは、LOGRECをデータセットではなく、ログ・ストリーム(システム・ロガー)で運用することもできます。詳細はマニュアル「MVS 診断: ツールと保守援助プログラム」などを参照して下さい。
EREPの詳細は、マニュアル「Environmental Record Editing and Printing Program(EREP) User’s Guide」(http://publibfp.dhe.ibm.com/epubs/pdf/ifc5g102.pdf)や「Environmental Record Editing and Printing Program(EREP) Reference」(http://publibfp.dhe.ibm.com/epubs/pdf/ifc5r105.pdf)を参照して下さい。その他「MVS 診断: ツールと保守援助プログラム」にも少し載ってるはずです。
MSPなら「サービスエイド使用手引書」あたりに載ってるはずです。VOS3では、確かLOGRECをRASLOGと呼んでたと記憶してます。マニュアルはちょっと思い出せません。資料も残してませんでした。