我可以使用 Rexx 在 zos 中读取数据集的分配参数吗?
Posted
技术标签:
【中文标题】我可以使用 Rexx 在 zos 中读取数据集的分配参数吗?【英文标题】:Can I read the allocation parameters of a dataset in zos using Rexx? 【发布时间】:2014-07-02 13:39:41 【问题描述】:我想创建一些 Rexx 代码,允许我以任何格式分配新数据集,例如 PDS、Sequential 等。通过读取现有数据集的数据集信息,然后将这些参数应用于新分配.
例如,当我在 3.2 中输入数据集名称并按 Enter 时,我会收到以下信息:
Data Set Name . . . . : HLQ.ETE.CNTL
General Data Current Allocation
Management class . . : MC000101 Allocated blocks . : 6
Storage class . . . : SC002020 Allocated extents . : 1
Volume serial . . . : VOL007 Maximum dir. blocks : 11
Device type . . . . : 3390
Data class . . . . . : None
Organization . . . : PO Current Utilization
Record format . . . : FB Used blocks . . . . : 5
Record length . . . : 80 Used extents . . . : 1
Block size . . . . : 27920 Used dir. blocks . : 6
1st extent blocks . : 6 Number of members . : 35
Secondary blocks . : 2
Data set name type : PDS Dates
Creation date . . . : 2014/04/02
Referenced date . . : 2014/07/01
Expiration date . . : ***None***
所以在我的 Rexx 中我想做两件事:
读取现有数据集分配参数,如上所示
使用读入参数分配新数据集
我会将此 Rexx 作为 JCL 批处理作业的一部分运行。
由于我已经研究了几天,但找不到任何方法,因此我将不胜感激。
【问题讨论】:
凯文的问题很严肃。一个 rexx 程序批量运行来完成已经可以通过 JCL 完成的事情是在自找麻烦。 JCL 已经正确地做到了,您需要编写并让您的程序工作,所以它会做一些已经存在的事情。您从中看到了什么好处? 【参考方案1】:如果在 ISPF 下运行,则 SPF 命令DSINFO 更易于使用,因为它会为您设置变量。
如果在 TSO 下运行,Kenny 对ListDsi 的回答是正确的。
对于 ISPF DSINFO,您会这样做(变量包含 dsname):
Address ispexec 'DSINFO DATASET('dsname')'
say 'dsn=' dsname
say 'volume=' ZDSVOL
say 'recfm=' ZDSRF
.....
【讨论】:
这是我的答案,因为它让我能够按照我的意愿成功地在 Rexx 中实现它,谢谢!【参考方案2】:您需要查看 TSO 函数 LISTDSI。这将为您提供所需的一切。 http://pic.dhe.ibm.com/infocenter/zos/v1r11/index.jsp?topic=/com.ibm.zos.r11.ikjb800/listdsi.htm
【讨论】:
【参考方案3】:但是,根据您的操作,我还建议您使用 DD LIKE 参数(用于 SMS 托管数据集)或 DCB= 选项,用于非 SMS 托管数据集。有关文档,请参阅 http://pic.dhe.ibm.com/infocenter/zos/v1r11/topic/com.ibm.zos.r11.ieab600/xddlike.htm 和 http://pic.dhe.ibm.com/infocenter/zos/v1r11/topic/com.ibm.zos.r11.ieab600/iea2b690169.htm#dcbdsn。
与其编写自己的 REXX 来完成这项工作,为什么不利用内置工具呢?尤其是你说无论如何都要批量运行它?
【讨论】:
很好的信息,很高兴知道我也可以这样做,谢谢!以上是关于我可以使用 Rexx 在 zos 中读取数据集的分配参数吗?的主要内容,如果未能解决你的问题,请参考以下文章
有没有办法使用 REXX 编辑 ps 数据集并在特定行之后插入字符串?
用于打开、关闭、读取和写入文件到 TAPE 驱动器的 REXX 命令是啥?