【发布时间】:2021-03-19 03:16:43
【问题描述】:
我从这个网址“借用”了 LPINFOX REXX 程序:[http://www.longpelaexpertise.com/toolsLPinfoX.php]
当我“直接”运行它时(EX 'hlq.EXEC(LPINFOX)')它运行良好:
------------------------------------------------------
LPInfo: Information for z/OS ssssssss as of 18 Mar 2021
------------------------------------------------------
z/OS version: 02.04
Sysplex name: LOCAL
JES: JES2 z/OS 2.4 (Node nnnn)
Security Software: RACF
CEC: 3907-Z02 (IBM Z z14 ZR1)
CEC Serial: ssssss
CEC Capacity mmmm MSU
LPAR name: llll
LPAR Capacity mmm`enter code here` MSU
Not running under a z/VM image
但是,如果我将调用插入另一个 exec,我会从地址 LINKPGM 调用中得到一个 RC -2:
------------------------------------------------------
LPInfo: Information for z/OS ssssssss as of 18 Mar 2021
------------------------------------------------------
z/OS version: 02.04
Sysplex name: LOCAL
JES: JES2 z/OS 2.4 (Node N1)
Security Software: RACF
79 - Address Linkpgm 'IWMQVS QVS_Out'
+++ RC(-2) +++
CEC: -
CEC Serial:
LPAR name:
Not running under a z/VM image
我确定这与第二级 REXX 程序的运行有关,但我能做些什么来处理错误(除了排队第二个 REXX 的执行)?我也对这个 RC 的记录位置感到困惑……我在 Google 上搜索“REXX ADDRESS RC -2”的结果很短。
谢谢, 斯科特
PS(1),根据@phunsoft 的回答:
有趣。我没有将代码复制到我的另一个 REXX。我从另一个 rexx 中调用了 LPINFOX:我有一个 hlq.LOGIN.EXEC,其中有一个“EX 'hlq.LPINFOX.EXEC”语句。当我将第一个 exec 减少到“TEST1”(如下)时,它以同样的方式失败:
/* REXX */
"EXECUTIL TS"
"EX 'FAGEN.LPINFOX.EXEC'"
exit 0
当我运行 TEST1 时,这是来自 IWMQVS 调用周围的 EXECUTIL 的输出:
当我直接从命令行运行 LPINFOX.EXEC 时,输出是一样的,除了地址 LINKPGM IWMQVS 工作正常:
我只能推测,当我“独立”运行 exec 与从另一个 exec 运行 exec 时存在一些环境差异。
PS(2),关于用 phunsoft 的 IEFBR14 替换 IWMQVS 的问题:
将程序更改为 IEFBR14 不会改变结果,RC=-2。
【问题讨论】:
-
我看不出应该有什么区别,但是,显然有一些。不确定下一步可能是什么。想...
-
当您编辑 PLINFOX REXX 并将“IWMQVS”更改为“IEFBR14”时会发生什么?它仍然失败吗?
-
是的,它仍然失败,完全相同的方式。它似乎与被调用的程序没有任何关系。参见上面的 PS(2)。
-
好吧,IEFBR14 不是最佳建议,因为我们仍然不知道程序是否被实际调用。 RC = -2 表示调用程序之前的变量处理问题,或者从程序返回后的变量处理问题。但是 IEFBR14 没有操作数据区,所以我猜问题是在调用程序之前。这有什么帮助?嗯,没什么,我害怕。您的 TSO 会话是否有可能耗尽存储空间?
-
您可以查看系统跟踪信息,并希望能找到有关正在发生的事情的提示。