批处理作业是否在AS400上共享相同的QTEMP库?

时间:2011-11-30 14:13:44

标签: batch-file ibm-midrange

假设有一个程序将文件复制到temp,对数据进行一些操作并将其复制回来。现在,如果我提交它以批量运行两次,那么将有两个批处理作业可能同时执行相同的文件技巧。是否会给另一方造成麻烦,比如扭曲另一方的数据,因为文件位于同一个库中?会发生什么事?让我们说对象锁定不是问题。

2 个答案:

答案 0 :(得分:5)

QTEMP对于系统上的每个单独作业都是唯一的,并且在作业结束时将删除在作业QTEMP库中创建的所有对象。

因此,在您的示例中,每个批处理作业都将拥有自己唯一的QTEMP库,并且不会干扰另一个。

答案 1 :(得分:4)

我认为在这些情况下,您始终会遇到数据失真的问题: 工作1更新生日;作业2更新邮政编码

Job 1 cpyf prod/x qtemp/x
Job 2 cpyf prod/x qtemp/x
Job 1 call updbirth
Job 2 call updpostal

此时,文件X有三个单独的副本:

1)生产。邮政编码和出生日期都没有更新,但其他一些工作可能更新了姓名和地址。对此副本所做的更新不会反映在作业1或作业2的文件X副本

2)工作1.此副本已更新出生日期,但不包括自工作1开始以来的生产日期中的邮政编码或更改。

3)工作2.此副本已更新邮政编码,但不包括自工作2开始以来的生产日期或生产中所做的更改。

无论将哪个文件复制回生产环境,生产中所做的所有更改都将丢失。然后,当其他工作文件被复制回生产时,所有那些更改也将丢失。生成的生产文件将仅包含上次批处理程序更新工作文件所做的更改。