【发布时间】:2020-06-07 12:32:48
【问题描述】:
我正在尝试编写一个 JCL 作业步骤,它将检索活动(此)作业的 JESMSGLG、JESJCL 和 JESLOG 数据集。这里的想法是我需要收集日志(从作业开始到现在)并在结束执行之前将其记录在数据集中。 所以我有:
// EXEC PGM=SDSF
//MYOUT DD SYSOUT=* (to changed to a dataset in the future)
//ISFOUT DD SYSOUT=*
//ISFIN DD *
SET CONSOLE BATCH
PREFIX *
OWNER myid
DA OJOB
++S
PRINT FILE MYOUT
FIND JESMSGLG FIRST
++X
FIND JESJCL FIRST
++X
FIND JESLOG FIRST
++X
PRINT CLOSE
当我运行作业时,我得到的只是 CC=0000 和 IFSOUT 中 SDSF Primary 面板的打印输出。
如果我再次在 TSO 下使用 SDSF 命令尝试此操作,我得到的只是主面板。如果我输入 any 命令(即使是无效命令),它似乎只是接受命令并默默地忽略它。
在 ISPF 下我可以做到这一点。
关于寻找什么以查看我做错了什么或缺少什么的任何想法?我很清楚这很可能是一个设置/调用/安全问题,但是当我似乎得到的只是 CC=0000 时,我不知道如何调试它。
【问题讨论】:
-
当你说“我可以在 ISPF 下做到这一点就好了”,你的意思是进入 SDSF 并运行这个命令,还是运行一个作业?当您提交作业时,它是一个单步作业(即仅此步骤),还是在它之前有步骤?
-
如果我登录 TSO 并使用 ISPF,我可以执行 =S;DA 之类的操作,并且可以查看我的 TSO 会话以及我可能正在运行、排队的任何作业以及任何 SYSOUT 数据集。关于 SDSF 的一切都按预期运行。我也可以很好地提交作业并观察它们的执行。如果我直接在 TSO 就绪提示符下(不在 ISPF 下)启动 SDSF,我得到的只是主面板,它似乎忽略了我所有的输入命令。 JCL 中的 PGM=SDSF 也会发生这种情况。为了简单起见,假设我在 // EXEC PGM=SDSF 之前有一个 // EXEC PGM=IEFBR14
-
另外,我可以使用 TSO REXX 脚本通过 IFSEXEC 访问 SDSF。问题(对我来说)是这必须作为批处理作业步骤运行,原因我可能不会透露。我想做的是我喜欢的解决方案(如果我能让它工作的话)。如果没有,那么我将不得不在 IKJEFT01 下的 REXX 下尝试 ISFEXEC,但宁愿不花时间去做。
-
突然间,我使用“普通”的 43x80 3270 屏幕登录到 TSO,并且只有 TSO 版本的 SDSF 出现了!我记得手册中说过“奇怪的事情会发生在奇怪的屏幕尺寸上”。我使用的是 50x132 显示器。我记得 PGM=SDSF 版本上有一个屏幕尺寸选项。我会检查一下,但我想我可能是在正确的轨道上。