参考REXX中分配的数据集

时间:2015-02-18 14:51:48

标签: mainframe jcl rexx tso

我们有一个REXX程序,可以在DDNAME LOGNM中创建数据集 LOG.DYYMMDD.THHMMSS.OUT

我们使用IKJEFT1B实用程序从JCL调用REXX PROGRAM。

如何在JCL中使用此数据集进行进一步处理。我的意思是我如何在JCL中引用它,因为数据集名称是动态创建的。

2 个答案:

答案 0 :(得分:2)

您是否使用 TSO分配 TSO复制命令在Rexx程序中创建数据集 或类似的TSO命令???

  • 如果您有问题,则可以参考 数据集安全地遵循以下步骤(有些方法可以在某些版本的JES中使用)。 我建议你重新编码rexx并在JCL中分配数据集。
       //LOGNM    DD  DSN=LOG.DYYMMDD.THHMMSS.OUT,DISP=(NEW,CATLG), ....
  • 如果你已经使用JCL分配数据集,即使用像
  • 这样的DD语句
       //LOGNM    DD  DSN=LOG.DYYMMDD.THHMMSS.OUT,DISP=(NEW,CATLG), ....

       //LOGNM    DD  DSN=LOG.DYYMMDD.THHMMSS.OUT,DISP=OLD

在以下步骤中使用数据集应该没有问题。

  • 如果使用JCL分配和删除数据集,即使用DD语句(如
       //LOGNM    DD  DSN=LOG.DYYMMDD.THHMMSS.OUT,DISP=(NEW,DELETE), ....

然后将DELETE更改为CATLG(或传递)

答案 1 :(得分:1)

创建数据集后,您可以像在任何其他数据集中一样在JCL中引用它。它是动态创建的并不重要,因为在创建数据集时会包含数据集配置。它的处理方式与使用JCL DD语句创建的完全相同。我不知道甚至有迹象表明它是在创建后动态创建的。它与任何其他PS数据集没有什么不同。

如果已编目:

//SOMENAME DD DISP=SHR,DSN=LOG.DYYMMDD.THHMMSS.OUT

如果没有编目,请对其进行编目,然后参见上文。

如果在关闭时删除,请不要删除它,但要对其进行编目,然后参见上文。

注意:我假设您在一个JOB中创建数据集并在其他JOB中访问它。如果您在同一个JOB中访问它,请记下Bruce Martin的答案。在提交JOB时,您的数据集将从JOB的处置处理的正常评估中被“隐藏”,因为数据集仅在那个点之后创建,当JOB实际运行时(如果它变为公平地运行,它可能会立即失败并出现“JCL ERROR”,甚至没有接近运行。

就我个人而言,我会在不同的工作中这样做,但是有些人认为他们在不工作时会保持简单。