Cobol 在jcl中由用户分配DDName
我想指定文件“ABC.DEF.XXX”的ddname,其中XXX是用户通过jcl中的sysin提供的输入。如何实现它?请理解Cobol 在jcl中由用户分配DDName,cobol,jcl,Cobol,Jcl,我想指定文件“ABC.DEF.XXX”的ddname,其中XXX是用户通过jcl中的sysin提供的输入。如何实现它?请理解 什么是技术上可能的 你的商店允许什么 根据您的需求,什么样的解决方案能够提供健壮且可维护的解决方案 这是三件截然不同的事情。我们中的一些人在StackOverflow上回答问题时都有自己的生活经历,这使得我们在回答关于技术上可行的问题时保持沉默,而没有提及您的店铺允许什么,或者正在解决的实际业务需求是什么 大型机已经存在了半个多世纪,许多商店都有解决技术问题的标准解决
- 什么是技术上可能的
- 你的商店允许什么
- 根据您的需求,什么样的解决方案能够提供健壮且可维护的解决方案
ABC.DEF.XXX
的访问。这可能会让那些进行影响分析的人感到悲伤
也就是说,我想到了两种解决问题的方法,它们属于“技术上可行的”范畴
SVC99
,也称为DYNALLOC
,这是z/OS上的动态分配例程。文档非常丰富,请参阅IBM z/OS知识中心,并查看z/OS MVS->z/OS MVS编程:授权汇编服务->动态分配dynalloc()
,以动态分配文件通常不会动态分配DD名称,必须在运行时分配的DSN是通过符号参数完成的。请理解
- 什么是技术上可能的
- 你的商店允许什么
- 根据您的需求,什么样的解决方案能够提供健壮且可维护的解决方案
ABC.DEF.XXX
的访问。这可能会让那些进行影响分析的人感到悲伤
也就是说,我想到了两种解决问题的方法,它们属于“技术上可行的”范畴
SVC99
,也称为DYNALLOC
,这是z/OS上的动态分配例程。文档非常丰富,请参阅IBM z/OS知识中心,并查看z/OS MVS->z/OS MVS编程:授权汇编服务->动态分配dynalloc()
,以动态分配文件通常不动态分配DD名称,必须在运行时分配的DSN通过符号参数完成。您可以检查&SYSUID。符号可在您的商店使用。如果是这样,当您指定AAA.BBB.&SYSUID时,它将扩展为提交用户的ID
有些商店也会传播其他符号,有些则不允许,这取决于具体情况。您可以检查&SYSUID。符号可在您的商店使用。如果是这样,当您指定AAA.BBB.&SYSUID时,它将扩展为提交用户的ID
有些商店也会传播其他符号,有些则不允许,这取决于具体情况。为了完整性,有一种稍微不同的方法,不涉及DYNALLOC(SVC 99) DYNALLOC的缺点是,您的作业可能会等待资源一段时间,从而在解决冲突时占用资源(例如批处理启动器)。例如,如果您需要的数据集或卷无法立即使用,则可能会无限期地等待,具体取决于您对DYNALLOC的编码方式 如果您只需要更改数据集的名称,有时可以使用RDJFCB和OPEN TYPE=J进行更改。JFCB(作业文件控制块)是z/OS如何知道已分配的数据集的…DSN和数据集标签中的大部分信息存储在其中。RDJFCB宏使您能够访问JFCB,然后OPEN TYPE=J为您提供了修改系统构建的JFCB的方法—例如,将数据集名称更改为您计算的内容,而不是JCL中的内容 实现这一点的一种常见方法是只使用一个包含基本分配数据的DD语句——它甚至不需要DSN(如果您不在JCL中指定DSN,系统将为您创建一个临时DSN)。您的程序使用OPEN TYPE=J修改JFCB,将数据集名称更改为您喜欢的任何名称。这是两个世界中最好的一种——你可以做你想做的事情,系统可以在你的工作开始之前解决任何资源冲突 有