无法让 SDSF 响应 TSO 或批处理命令
Posted
技术标签:
【中文标题】无法让 SDSF 响应 TSO 或批处理命令【英文标题】:Cannot get SDSF to respond to TSO or batch commands 【发布时间】: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 版本上有一个屏幕尺寸选项。我会检查一下,但我想我可能是在正确的轨道上。 【参考方案1】:是的,就是这样!我将 PARM='++24,80' 添加到 // EXEC PGM=SDSF 并且它现在可以工作了。我不完全确定为什么,但可能是 SDSF 的本地安装错误。
事实证明我上面列出的命令不太正确,但这与这个问题无关。
感谢凯文,感谢您的时间和兴趣。
【讨论】:
以上是关于无法让 SDSF 响应 TSO 或批处理命令的主要内容,如果未能解决你的问题,请参考以下文章
尝试在批处理环境中执行 REXX 或 TSO 命令时尝试绕过错误
通过 ftp 连接 Z/OS 大型机 SDSF。如何获得RC?
是否有用 REXX 或 CLIST 编写的 TSO 命令可以确定谁已将数据集排入队列?