1

我在大型机上有一份工作(JCL),我想以编程方式从系统目录(API 调用)中检索特定 GDG 文件的最近相对代号……然后我可以在其中以编程方式通过调用返回的结果进行挖掘图出相对代数。这类似于在 GDG 基本文件名上执行 TSO 3.4,在该文件名上可以看到最新的代号。IDCAMS 似乎不会以对程序友好的格式返回信息。谢谢!

示例:GDG 基本名称:TEST.FILE

GDG 世代:

测试文件。G0010V00

测试文件。G0011V00

测试文件。G0012V00

4

3 回答 3

1

看看IGGCSI00,目录界面。您可以从任何程序(REXX、CLIST、COBOL、汇编程序、PL/I)调用它,它提供了很大的灵活性。当然,就像很多 IBM 灵活的解决方案一样,总是有些迟钝。

Internet上有很多示例,但是SYS1.SAMPLIB(IGGCSIRX)中的示例程序非常出色。

于 2015-12-16T20:06:53.340 回答
1

以编程方式(在汇编语言中),您可以使用 LOCATE SVC,并使用 CAMLST 指定参数列表,以获取您正在寻找的信息——这是一个参考:https ://www.ibm.com/support/knowledgecenter/SSLTBW_2 .1.0/com.ibm.zos.v2r1.idas300/s3099.htm - 那里的示例仅显示如何使用它来获取卷列表,但我在 80 年代初使用它来获取 GV-(一代-版本)对应于相对索引号的子名限定符——通过 GDG 基本 DSNAME,你会得到所有的 gens——如果你想看到一些关于这个的线程,也许搜索 bit.listserv.ibm-main——你可以还可以使用术语“Generation Index Pointer Entry”(GIPE)搜索在线 IBM 手册,这是相关控制块的关键部分......

于 2016-08-29T18:08:43.397 回答
0

您的选择包括:

特别是对于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 回答