SMFデータセットのアンロードJCLサンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
// JOB Statement //********************************************************************* //* Sample JCL - IFASMFDP //* ===================== //********************************************************************* //IFASMFDP EXEC PGM=IFASMFDP //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=SYS1.MANX,DISP=SHR //SYSUT2 DD DSN=WORK.SMFMANX.UNLOAD,DISP=(,KEEP), // UNIT=SYSDA,VOL=SER=WORK03,SPACE=(CYL,(50,10),RLSE) //SYSIN DD * INDD(SYSUT1,OPTIONS(DUMP)) OUTDD(SYSUT2,TYPE(0:255)) // |
SMFデータセットを、順次データセットにアンロードします。TYPE(0:255)オプションを指定しているので、SMFデータセット内のすべてのレコードがアンロードされます。
入力元SMFデータセットの内容は、クリアーせずにそのまま残します。ACTIVEなSMFデータセットでもアンロードは可能です。日付や時刻でアンロードするレコードを絞り込むこともできます。日付ならMVSではDATE(2008001,2008031)、MSPではDATE(080101,080131)のように制御ステートメントに追加します。
MSPではプログラム名はKDKSMFDPになります。なお、VOS3では全くJCLが異なりますので、SMS(VOS3ではSMFをSMSと呼びます)のマニュアルを参照して下さい。
1 2 3 4 5 6 7 8 9 10 11 12 |
//IFASMFDP EXEC PGM=IFASMFDP //SYSPRINT DD SYSOUT=* //SYSUT1 DD DSN=SYS1.MANX,DISP=SHR //OUT1 DD DSN=WORK.SMFMANX.UNLOAD.REC30,DISP=(,KEEP), // UNIT=SYSDA,VOL=SER=WORK03,SPACE=(CYL,(50,10),RLSE) //OUT2 DD DSN=WORK.SMFMANX.UNLOAD.REC60,DISP=(,KEEP), // UNIT=SYSDA,VOL=SER=WORK03,SPACE=(CYL,(50,10),RLSE) //SYSIN DD * INDD(SYSUT1,OPTIONS(DUMP)) OUTDD(OUT1,TYPE(30)) OUTDD(OUT2,TYPE(60:69)) // |
アンロードするレコードを、レコード・タイプで選択し、出力先データセットを振り分けることもできます。その場合は、OUTDD制御ステートメントを複数個定義し、レコード・タイプに対応した出力先DD名を指定します。
サンプルではレコード・タイプ30をWORK.SMFMANX.UNLOAD.REC30へ、レコード・タイプ60番台をWORK.SMFMANX.UNLOAD.REC60へアンロードします。
アンロード処理のパフォーマンスを上げる方法
1 2 3 4 5 |
//IFASMFDP EXEC PGM=IFASMFDP //SYSPRINT DD SYSOUT=* //SYSUT1 DD DISP=SHR,DSN=SYS1.MANX,AMP='BUFND=20' : : |
SMFデータセットを定義したDDステートメントに、AMPパラメーターでBUFNDを指定します。BUFNDは、VSAMのDATAコンポーネントをアクセスするためのバッファー数です。SMFデータセットのCIサイズが4KBの場合、BUFND値に20を指定するとSMFデータセットへのI/O回数が、省略時の約1/10に減少します。I/Oの減少に伴いCPU使用量もその分減少します。ELAP時間もそれらに応じて短縮できます。ただし、むやみに多くしてもメモリーだけ増え効果は頭打ちになります。多くてもBUFND=50程度でしょう。なお、z/OSでSMFデータセットのCIサイズが大きく設定されている場合(3390型ディスクで26KB:26624バイト)、BUFND値は10程度で十分です。元々のCIサイズが大きいので、BUFNDを指定しなくても十分なパフォーマンスがあります。
BUFNDの指定は、書き込み処理であるSMFデータセットのCLEAR時にも有効です。巨大なSMFデータセットで運用していて、ダンプ(アンロード)やクリアーの時間もばかにならない、と感じている場合は試してみて下さい。