在 JCL 中,STEPLIB 总是覆盖 JOBLIB。谁能解释为什么会这样?
问问题
4351 次
3 回答
6
以下是 IBM 手册的摘录,解释了 Joblib DD 语句的作用以及 Steplib DD 语句如何与 Joblib 语句交互。
创建一个私人图书馆。
标识一个私有库,系统将在作业中搜索在每个 EXEC 语句 PGM 参数中命名的程序。只有当系统在私有库中没有找到程序时,才会搜索系统库。
使用 JOBLIB DD 语句定义系统将用于整个作业的私有库。如果您包含作业的 JOBLIB DD 语句和单个作业步骤的 STEPLIB DD 语句,系统首先搜索步骤库,然后搜索系统库以查找 EXEC 语句中请求的程序。系统忽略该步骤的 JOBLIB 库。
于 2013-07-07T09:22:05.570 回答
1
以此类推。当您编写程序时,您知道如何拥有一个与全局变量同名的局部变量。语言的范围规则从特定到通用。
与特定于作业步骤级别的 STEPLIB 相同。而 JOBLIB 是一个通用的全局定义。这允许在每一步都可以更改的一般定义或覆盖。反其道而行之,太死板了,不可控。
有些人会说“好吧,IBM 的某个人刚刚做出了选择。” 不,我不同意这一点,IBM 在他们如何设计大型机硬件和软件方面做出了良好、可靠、合理的决策。并且以分层方式控制程序库的能力,从特定到通用是他们众多优秀选择之一。
于 2013-09-04T02:23:39.207 回答