gpt4 book ai didi

dataset - REXX/z/OS 数据集锁

转载 作者:行者123 更新时间:2023-12-02 21:02:28 25 4
gpt4 key购买 nike

我想知道 REXX 语言的一件事,它如何处理数据集锁。情况:- 我在 ISPF 编辑器中打开了顺序数据集- 我启动 REXX 程序来更新(更改)该数据集- 它工作得很好,但是怎么可能呢?通常,如果您在编辑器中打开了数据集并且您尝试从另一个程序使用该数据(例如,如果您提交某些作业),您将收到消息“数据集正在使用”。为什么这可以与 REXX 一起使用。也许相同的地址空间或者...?谁能告诉我吗?

最佳答案

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

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

在您的特定示例中值得注意的一点是您正在运行 ISPF Edit session 和 REXX exec 在相同 TSO session 下。内的数据集分配同一TSO session 不会互相阻塞。 DISP 参数指定如何锁定尊重其他流程,而不是流程本身。因此永远不会有是同一 TSO session 下运行的不同程序之间的数据集锁定问题。

ISPF 编辑器弹出的“数据集正在使用”消息是编辑器本身检查先前的分配在同一个 TSO session 下。

尝试以下实验:

重复您所描述的内容:在数据集上打开 ISPF 编辑 session 。然后在同一 TSO session 下运行 REXX 过程来更新它。应该毫无怨言地工作。

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

数据集访问冲突仅在不同进程尝试访问时才会出现使用不兼容的 DISP 参数分配相同的数据集。

关于dataset - REXX/z/OS 数据集锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3564920/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com