1

メインフレームにジョブ (JCL) があり、システム カタログ (API 呼び出し) から特定の GDG ファイルの最近の相対世代番号をプログラムで取得したい... そこで、図の呼び出しによって返された結果をプログラムで掘り下げることができます。相対世代番号を出力します。これは、最新の世代番号を確認できる GDG ベース ファイル名で TSO 3.4 を実行するのと似ています。IDCAMS は、プログラムにとって使いやすい形式で情報を返すようには見えません。ありがとう!

例: GDG ベース名: TEST.FILE

GDG世代:

TEST.FILE. G0010V00

TEST.FILE. G0011V00

TEST.FILE. G0012V00

4

3 に答える 3

1

プログラムで (アセンブラー言語で)、パラメーター リストを指定する CAMLST を使用して LOCATE SVC を使用して、探している情報を取得できます。 .1.0/com.ibm.zos.v2r1.idas300/s3099.htm -- そこにある例は、それを使用してボリューム リストを取得する方法のみを示していますが、私は 80 年代初頭に GV- (世代- version) 相対インデックス番号に対応するサブネーム修飾子 -- GDG ベース DSNAME を渡すと、すべての世代を取得できます -- これに関するいくつかのスレッドを見たい場合は、おそらく bit.listserv.ibm-main を検索してください -- 可能です関連する制御ブロックの重要な部分である "Generation Index Pointer Entry" (GIPE) という用語を使用して、オンラインの IBM マニュアルも検索してください ...

于 2016-08-29T18:08:43.397 に答える
0

選択肢は次のとおりです。

  • IDCAMS/TSO Listcatと再フォーマットするプログラムの作成
  • Rexx ListDsiコマンド

特にListDsiの場合、JCL で以下を使用できます。

//MYGDG  DD DSN=my.gdg(0),DISP=SHR

そしてrexxプログラムで

x = ListDsi("MYGDG FILE")

say SYSDSNAME

バックグラウンド ISPF サービスを使用することもできますが、これはやり過ぎです。


**注:* rexx を実行するには、TSO を実行する必要があります

//* job statement 
//TSOBATCH EXEC PGM=IKJEFT1A,DYNAMNBR=200 
//SYSEXEC  DD  DSN=userid.REXX.EXEC,DISP=SHR 
//SYSPRINT DD  SYSOUT=* 
//SYSTSPRT DD  SYSOUT=* 
//MYGDG    DD  DSN=my.gdg(0),DISP=SHR
//SYSTSIN  DD  * 
PROFILE PREFIX(userid) /* specifying a userid*/ 
%MYREXX 
于 2015-12-16T19:09:08.880 に答える