早上的伙计们,
批量提交MVS命令后,我想知道是否可以在seq文件中打印结果。谢谢你的时间。
//S02IEBG EXEC PGM=IEBGENER
//SYSUT2 DD SYSOUT=(A,INTRDR),DCB=BLKSIZE=23440
//SYSIN DD DUMMY
//SYSOUT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSUT1 DD *,DLM=$$
/*$VS,'$DQ'
$$
从你的问题中不清楚,但如果你的意思是">提交作业后,你能将输出捕获到数据集吗",我建议你在 SDSF 中使用XDC
行命令。如果需要输出的特定部分,请先使用?
line 命令显示每个输出,然后XDC
要保存的输出。
是的,可以将 SYSOUT 写入顺序文件。我以前做过这个,但除非你绝对需要,否则我不推荐它。
您的系统应该有一些 SYSLOG 管理系统(如 SMR/JMR 或类似系统),您可以在其中浏览作业生成的 SYSOUT。不要误会我的意思,我意识到这不是万无一失的。有时您可能需要将 SYSOUT 写入文件。我需要这样做的原因是因为我循环使用大量调试显示,并且需要有很多行来帮助我进行调试。
如果你想确保 SYSOUT 转到一个文件,你需要做的就是把文件放在 SYSOUT 之后:
//S02IEBG EXEC PGM=IEBGENER
//SYSUT2 DD SYSOUT=(A,INTRDR),DCB=BLKSIZE=23440
//SYSIN DD DUMMY
//SYSOUT DD DSN=YOUR.SYSOUT.FILE,
// DISP=(NEW,CATLG,DELETE),
// UNIT=TEST,SPACE=(TRK,(2,1),RLSE),
// DCB=(LRECL=080,BLKSIZE=0,RECFM=FB)
//SYSUDUMP DD SYSOUT=*
//SYSUT1 DD *,DLM=$$
如果需要,可以通过编辑SPACE
参数来更改文件的大小。如果计划多次运行此作业,则需要在此之前添加删除步骤,或使 SYSOUT 文件成为可以递增的 GDG。否则,NEW
的DISP
将不起作用。
只要您知道正确的文件分配是什么,就可以使用任何 DD 名称完成此操作。
我相信以下内容可能会起作用。这是假设您想从DQ
命令捕获输出:-
//SDSF EXEC PGM=SDSF
//ISFOUT DD SYSOUT=*
//CMDOUT DD DSN=YOUR.DATASET,
// DISP=(,CATLG,DELETE),
// DCB=(RECFM=FBA,LRECL=133,BLKSIZE=0),
// SPACE=(CYL,(1,1)),UNIT=SYSDA
//ISFIN DD *
SET CONSOLE BATCH
SET DELAY 60
/$ DQ
PRINT FILE CMDOUT
ULOG
PRINT
PRINT CLOSE
/*
//
- 显然,这可能需要根据您网站的要求进行定制。
您可能会发现发出 MVS 或 JES 命令很有帮助。
补充评论:-
我确实尝试了SDSF,但我无权使用它,这就是为什么我 我正在寻找另一种方式。
也许然后按照以下方式使用 TSO/E (REXX) :-
从 TSO/E 中,您可以使用 TSO/E 控制台命令。激活控制台会话后,您 可以发出MVS™系统和子系统命令并获取命令 反应。本附录介绍了不同的命令和 可在 REXX execs 中用于设置和使用控制台的函数 会期。
编写 REXX 执行执行以执行 MVS 运算符活动
然而,权威可能是一个问题,如果不是立即,也许一旦有人注意到你绕过已经关闭的门。
这可能有效(我没有测试它的设施):-
/* REXX */
ADDRESS TSO 'CONSPROF SOLDISPLAY(NO)'
ADDRESS TSO 'CONSOLE ACTIVATE'
ADDRESS CONSOLE '$DQ'
/* retrieve output command */
max_iterations = 100
DO i = 1 to max_iterations
messages_remaining = GETMSG('line.','SOL',,,10)
IF messages_remaining = 0 THEN leave
END
/* Done so echo retrieved messages
say 'Messages Retrieved are :-'
DO i = 1 to line.0
say '*** ' line.i
END
ADDRESS TSO 'CONSOLE DEACTIVATE'
EXIT
您需要将其包装到批处理作业中,因此您可能会发现以下内容很有帮助
- 如何将我的 Rexx 程序作为批处理作业运行?
- 方法 2 是合适的,因为您需要一个 TSO/E 环境
一个解决方案可能是与那些负责拒绝访问SDSF的人交谈,这可能会导致被授予权力。同样,它可能会导致打开的门,例如能够发出JES命令被关闭。
您可能有权访问 SDSF 以查看输出。
在要打印的作业类型xdc旁边,这将弹出一个用于数据集分配的面板(或者它可能已经存在)。完成后,它将打印输出并关闭它。
如果您只需要某个步骤/系统的输出,则可以在SDSF中的作业旁边键入?这将为您提供输出列表。与之前相同,在您选择的数据集旁边键入 xdc,然后分配数据集。
如果您直接使用这些命令并且需要具有该会话的历史记录,也可以对 TSO 会话执行此操作。尽管这仅在您关闭 SDSF ULOG 之前有效。