FIBGET

By 神居 - Posted: 2010/09/08 Last updated: 2010/09/08 - 2 Comments

FIBGET:AIFからサブミットしたジョブのSOUTファイルを取り出すコマンド(XSP専用)


富士通のXSPシステムにおいても、MSP同様にジョブの出力をシステムが管理する特殊なデータセットとして書き出すことができます。しかしOSが違うためその方法は異なります。MSPではJESと呼ばれるスプーリングサブシステムが、スプールと呼ばれるDASD上の特殊なデータセット内にSYSOUTと呼ばれる仮想データセットとして書き出して管理します。
XSPにはJESに相当するものはなく、XSP自身のジョブ管理機能がジョブのスケジューリングやジョブ入力と出力を管理します。MSPのSYSOUTデータセットに相当するのがSOUTファイルで、XSPでもJCLによってSOUTへの書き出しを指定します。SOUTもクラス(AからTの1文字)や出力部数、フォーム(用紙コード)、文字セット、オーバーレイなどMSPと似たような属性を持っています。

\ JOB BACKUP1,LIST=(A,JS)
\ EX  LIBE
\ FD  LIST=DA,SOUT=A  ← ファイル名LISTをSOUTへ出力する指定
\ FD  SYSUT1=DA,FILE=UAP1.MASTER
\ FD  SYSUT2=DA,FILE=UAP1.MASTER.UNLOAD,
      CYL=(1,1),VOL=000002,DISP=CAT
\ FD  COIN=*
/ BACKUP +,IN=SYSUT1,OUT=SYSUT2
/ FIN
\ JEND

XSPにはMSPのJESのようなスプールデータセットはなく、SOUTファイルの出力先はJCLによってディスクやテープなどのデバイスが指定されます。デバイス種別に加えボリュームを特定することもできます。指定しなければOSが適切なボリュームを割り振ります。MSPではSYSOUTデータセットにはJESが識別するための名前(DSN)が付けられますが、XSPでもOSがSYSOUTにファイル名を付け直接DASDボリュームなどに書き出します。

XSPにはジョブスタックファイルというものがあるが、そこで管理されるのは解釈されたJCLとジョブスケジューリングのためのジョブ入出力待ち行列で、SOUTファイルそのものの内容は含まれない。

書き出されたSOUTファイルはクラスに対応したプリンターやテープなどに出力されますが、印刷が不要なものはディスプレイ端末で内容を確認して消去することもできます。これを行うのがAIFのFIBGETコマンドです。AIFはMSPのTSSと同じものです。PFDなどのエディターからSUBMITしたジョブ(FIBジョブ:Foreground Initiated Backgroundジョブ)の実行結果はわざわざ印刷せずにディスプレイ端末でその内容を確認できれば十分なことが多いです。MSPではPFDのOUTLISTユーティリティー(オプション3.8)を利用すればスプール内のSYSOUTデータセットの内容を直接参照できますが、XSPではSOUTファイルの内容を直接PFDブラウザーなどで参照できません。そこでAIFのコマンドプロンプトから「FIBGET」というコマンドを使って、SOUTファイルの内容を一旦順次編成ファイルへ移してから、その順次編成ファイルをPFDのブラウザーなどで参照します。


FIBGETコマンド

FIBGET jobname [CLASS(class)] DATASET(filename)

例:
AIFログオン・ユーザーID=USER01、ジョブ名=MYJOB01、である時、
FIBGET MYJOB01 DATASET(JOBOUT)
とすれば、
ジョブMYJOB01のSOUT内容が、USER01.JOBOUT.LIST というファイルに書き出される。

ピックアップしたいジョブ名、出力先ファイル名を指定します。クラスを省略した場合は、AからTの順番で探され見つかったジョブのSYSOUTが選択されます。出力先の順次編成ファイルはRECFM=VB、LRECL=136の属性を持ちます。FIBGET実行後、書き出されたSYSOUTは消去されますのでSYSOUTから順次編成ファイルへの移動コマンド、と考えていいでしょう。
ファイル名を完全修飾名で指定する場合は、ファイル名をクォーテーション記号’で囲みます。例えばDATASET(‘MY.SOUT’)のようにです。コマンドの詳細は「AIFコマンド文法書」に記載されています。

出力先順次編成ファイルの形式は、AIFそのもののオプションパラメーターでVBかVBAかを選択することもできる。

次のようなコマンドプロシージャを作成して実行すれば、ジョブ名を指定するだけでSYSOUTの内容をPFDブラウザーで表示できます。

          PROC 1 JOBNAME
          CONTROL MSG
          FIBGET &JOBNAME DATASET('MY.SYSOUT')
LOOP:     READ
          IF &LENGTH(&SYSDVAL) NE 0 THEN GOTO CALLPDF
          GOTO LOOP
CALLPDF:  PFDEXEC BROWSE DATASET('MY.SYSOUT')

FIBGETコマンドの要求によって、AIFWTRというシステムプログラムがSYSOUTを順次編成ファイルに書き出します。AIFWTRはあらかじめSTARTコマンドによって起動されている必要がありますが、多くのセンターではIPL後にAIFと共に起動されているようです。

Posted in キーワードから(何が知りたいですか) • • Top Of Page

2 Responses to “FIBGET”

Comment from 野良猫
Time 2010年9月14日 at 23:43

久しぶりでXSPのJCLを見たのですが、自分が知っている限りですとSOUTの場合でもシステムで定義してあるWORK-VOLへ書き込むので記事にあるようにだけでは駄目だと思います。

\ FD LIST=DA,SOUT=A,TRK=(50),VOL=WORK

上記のように記述しないと駄目だっと思いますよ。

Comment from kamii
Time 2010年9月16日 at 13:57

野良猫さま
いつも当サイトをご覧いただきありがとうございます。元々自分が使っていた実績あるJCLを参照しての記事でしたが、念のため改めて実機での確認をしたところ大丈夫でした。しかし多くのXSPユーザーではSOUTにVOLとスペース量を併せて定義しているのも実情です。もしかしたら以前のXSP(X8/FSPとか)では必須だったのかも知れません。しかし現在ではVOLとスペース量の両方を省略した場合はXSPのシステム生成時に定義した省略ボリュームと省略スペースで割り当てられるようです。もちろんSOUTへの書き出し量が多い場合はB37ABENDなどを引き起こすことがあるので、その場合はスペース量とVOLを指定する必要はあると思います。