SMFデータセットのアンロード

SMFデータセットのアンロードJCLサンプル

SMFデータセットを、順次データセットにアンロードします。TYPE(0:255)オプションを指定しているので、SMFデータセット内のすべてのレコードがアンロードされます。

入力元SMFデータセットの内容は、クリアーせずにそのまま残します。ACTIVEなSMFデータセットでもアンロードは可能です。日付や時刻でアンロードするレコードを絞り込むこともできます。日付ならMVSではDATE(2008001,2008031)、MSPではDATE(080101,080131)のように制御ステートメントに追加します。

MSPではプログラム名はKDKSMFDPになります。なお、VOS3では全くJCLが異なりますので、SMS(VOS3ではSMFをSMSと呼びます)のマニュアルを参照して下さい。

アンロードするレコードを、レコード・タイプで選択し、出力先データセットを振り分けることもできます。その場合は、OUTDD制御ステートメントを複数個定義し、レコード・タイプに対応した出力先DD名を指定します。

サンプルではレコード・タイプ30をWORK.SMFMANX.UNLOAD.REC30へ、レコード・タイプ60番台をWORK.SMFMANX.UNLOAD.REC60へアンロードします。

    アンロード処理のパフォーマンスを上げる方法

    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データセットで運用していて、ダンプ(アンロード)やクリアーの時間もばかにならない、と感じている場合は試してみて下さい。