0

各位早安

批量提交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'                                      
$$ 
4

4 回答 4

1

从您的问题中不清楚,但是如果您的意思是“在提交工作后,您可以将输出捕获到数据集”,我建议您XDC在 SDSF 中使用 line 命令。如果您想要输出的特定部分,?请先使用 line 命令显示每个输出,然后再显示XDC要保存的输出。

于 2018-04-10T00:12:49.447 回答
1

是的,可以将 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。否则,DISPofNEW将不起作用。

只要您知道正确的文件分配是什么,就可以使用任何 DD 名称来完成此操作。

于 2018-04-10T10:18:48.533 回答
1

我相信以下可能有效。那是假设您要捕获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 CONSOLE 命令建立扩展的 MCS 控制台会话。激活控制台会话后,您可以发出 MVS™ 系统和子系统命令并获取命令响应。本附录描述了您可以在 REXX 执行程序中使用的不同命令和函数来设置和使用控制台会话。

编写 REXX Execs 以执行 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

您需要将其包装到批处理作业中,因此您可能会发现以下内容很有帮助


一个解决方案可能是与负责拒绝访问 SDSF 的人交谈,这可能会导致授予权限。再次,它可能导致打开的门,例如能够发出 JES 命令被关闭。

于 2018-04-10T10:10:40.200 回答
0

您可能有权访问 SDSF 来查看输出。

在您要打印的作业旁边键入xdc,这将弹出一个用于数据集分配的面板(或者它可以是已经存在的)。完成后,它将打印输出并关闭它。

如果您只需要某个步骤/系统输出的输出,您可以输入 ? 在 SDSF 的工作旁边。这将为您提供输出列表。与之前相同,在您选择并分配数据集的旁边键入 xdc。

如果您直接使用命令并且需要有它的历史记录,这也可以在您的 TSO 会话中完成。虽然这仅在您关闭 SDSF ULOG 之前有效。

于 2018-07-16T13:46:43.983 回答