首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >REXX / z/OS数据集锁

REXX / z/OS数据集锁
EN

Stack Overflow用户
提问于 2010-08-25 10:31:44
回答 1查看 1.1K关注 0票数 3

我想知道REXX语言的一件事,它是如何处理数据集锁的。情况:-我在我的ISPF编辑器中打开了顺序数据集--我启动了REXX程序--对数据集进行更新(更改)--它工作得很好,但是它是如何实现的呢?通常,如果您在编辑器中打开了数据集,并且尝试使用来自另一个程序的数据集(例如,如果您提交了某个职务),您将得到“使用中的数据集”消息。为什么这和这里的REXX一起工作。也许是同一个地址空间还是.?有人能告诉我吗?

EN

回答 1

Stack Overflow用户

发布于 2010-08-26 16:37:12

REXX不管理数据集锁定。REXX调用服务模块来分配数据集并对它们执行I/O。TSO下的I/O服务例程称为EXECIO。在EXECIO能够对数据集进行操作之前,它必须在TSO下分配给某些DDName。然后在EXECIO请求中引用此DDName。

数据集可以直接从TSO命令提示符或从REXX内部分配。数据集锁定级别由数据集分配期间提供的DISPosition参数确定。

在您的特定示例中需要注意的一点是,您正在同一TSO会话下运行ISPF编辑会话和REXX exec。同一TSO会话中的数据集分配不会彼此阻塞。DISP参数指定如何锁定其他进程,而不是进程本身。因此,在同一TSO会话下运行的不同程序之间永远不会出现数据集锁定问题。

ISPF编辑器弹出的“使用中的数据集”消息是编辑器本身在同一TSO会话下检查先前分配的功能。

尝试以下实验:

重复您描述的内容:在dataset上打开ISPF编辑会话。然后在同一个TSO会话下运行您的REXX来更新它。应该毫无怨言地工作。

接下来:让朋友在dataset上打开ISPF编辑会话。这一次,您的REXX会因为“使用中的数据集”而崩溃。通过编辑TSO中的dataset并将REXX作为批处理作业提交到您的帐户下,您也可以自己做同样的事情。交互式TSO会话是一个进程,批处理TSO会话是第二个进程,它们之间将发生数据集锁定(您的批处理作业将爆炸或挂起,直到TSO编辑会话被放弃)。

只有当不同进程试图使用不兼容的DISP参数分配同一数据集时,才会显示数据集访问冲突。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3564920

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档