0

我们有一个作业,它需要备份 VSAM 文件,然后是同一 VSAM 文件的标准 Delete-Define-Repro。为了处理尝试删除不存在文件的情况,我们遵循标准做法,如果 Delete 返回非零返回码,则将 MAXCC/LASTCC 设置为 0,然后继续该过程,就好像没有错误一样。

但有时我们会面临删除无法正常工作的情况,因为文件被某个用户打开或在其他作业中被读取。在这种情况下,作业失败是因为在定义新的 VSAM 文件时,因为文件已经存在(删除无法清除它)。

这种情况有什么解决方法吗?或者我们可以强制删除一个文件,即使它被其他进程/用户持有?

谢谢阅读!

4

1 回答 1

2

您应该能够发现,当 VSAM 文件(或任何其他文件)被“其他东西”使用时,删除它不是一个好主意。

为什么不测试 DELETE 中的特定值?

如果您要进行备份,然后删除/定义,那么获得文件的独占控制权将是一个非常非常好的主意,否则某些事情会变得一团糟。

您可以使用 DISP=OLD 将 DSN 的 DD 作为有问题的 VSAM 文件,这样只有在没有人使用该文件时才会选择您的作业。

你是怎么做备份的?为什么其他作业同时访问该文件?这是在“测试”环境中吗?它是什么类型的 VSAM 文件?你为什么要做 REPRO,你觉得那是最好的方法吗?

如果不知道所有这些以及更多信息,实际的答案是很困难的。

于 2013-01-26T18:47:59.717 回答