SYSOUTデータセットの取り出し(エクスターナル・ライター)

JES2スプールに書き出されたSYSOUTデータセットは、順次編成データセットに移すことができます。これは、エクスターナル・ライター(外部書き出しプログラム)と呼ばれるプログラムの機能です。SYSOUTは、SDSFやPFD(MSPの場合)などのTSOの対話型機能によって画面表示されることが多いですが、エクスターナル・ライターを使いPSデータセットに移せば、FTPやファイル転送機能でPCなど他のコンピュータへ送ることもできます。取り出すSYSOUTの数が多ければ、エクスターナル・ライターの方が手間が掛かりません。数個程度のジョブ、SYSOUTデータセットであれば、SDSFのXDCコマンドなどの利用がお手軽でしょう。SDSFを使用したSYSOUTデータセットの取り出しについては、「SYSOUTデータセットとは」「SDSFで表示中のSYSOUTをデータセットに取り込む」「JOBLOGをまとめて簡単保管」などが参考にできます。

エクスターナル・ライター起動プロシージャ・サンプル

    MVS用

    MSP用

    VOS3用

    出力先データセットの作成

PARMパラメーターで取り出すSYSOUTクラスを、文字Pに続き指定します。サンプルでは、Wクラスを取り出すことを指定しています。SYSOUTを格納するデータセットは、IEFRDER DDステートメントで定義します(OSにより異なるのでサンプルを参照)。

パラメーターには、セパレーター・モジュール名を指定できます。MVSでは、IBM標準提供のセパレーター・モジュールIEFSD094が利用できます。MSP、VOS3でも同じです(プログラム名はサンプル参照)。セパレーター・モジュールを使うと、ジョブの区切りでセパレーター・ページが書き出されます。

エクスターナル・ライターは、STARTコマンドで起動させなければなりません。MVSでは、マスター・スケジューラーのJCL(MSTJCLnn)に定義された、IEFJOBSデータセットに登録してもかまいません。その場合、PROCステートメントの代わりにJOBステートメントでJCLを定義しますが、起動には必ずSTARTコマンドを使用します。

エクスターナル・ライターの起動操作

識別名を付けないと、IEFRDER DDステートメントに定義したデータセットの格納ボリュームの装置アドレスが識別名になります。エクスターナル・ライターは識別名で停止させますから、任意の識別名を自分で付けた方がわかりやすいでしょう。

起動時に、SYSOUTクラスを簡単に変更することが出来ます。カンマ記号3つの後に、スプールから取り出すSYSOUTクラスを指定します。例では、J、KおよびLの3つのクラスを指定しています。また、起動中にMODIFYコマンドでクラスを変更することもできます。

エクスターナル・ライターは、スプールから取り出すSYSOUTをクラスで選択します。起動後にMODIFYコマンドを使えば、DEST、FORM、ライタープログラム名、ジョブIDでの選択もできます。ただし、ジョブ名では選択できません。ジョブ名で選択するなら、TSOのOUTPUTコマンドを利用できます。

OUT jobname(jobid) PRINT('output datasetname')

ただし、SYSOUTはホールドされていて、ジョブ名はTSOユーザーIDと同じ名前で始まっていなければならない、などの制限があります。MVSであればSDSFの方が使いやすいでしょう。