通过JCL或REXX调用Netview的MEMSTOUT

问题描述 投票:0回答:1

我有一个JCL作业可以为消息自动化表编译多个Netview REXX执行程序:

********************************* Top of Data ******************************
//REXXCOMP  JOBCARD
//*--------------------------------------------------------------------     
//*                                                                         
//* BATCH REXX COMPILE                                                      
//*                                                                         
//*--------------------------------------------------------------------     
//REXXCOMP PROC                                                             
//         EXEC REXXC,OPTIONS='XREF OBJECT'                                 
//REXX.SYSIN DD DSN=SYSAOC.PRODNETV.EXECS(&MEMIN),DISP=SHR               
//REXX.SYSCEXEC DD DSN=SYSAOC.PRODNETV.CEXEC(&MEMIN),DISP=SHR            
//         PEND                                                             
//*--------------------------------------------------------------------     
//S01 EXEC REXXCOMP,MEMIN='MEMBER01'                                        
//S02 EXEC REXXCOMP,MEMIN='MEMBER02'                                        
//S03 EXEC REXXCOMP,MEMIN='MEMBER03'                                        
//S04 EXEC REXXCOMP,MEMIN='MEMBER04'                                        
//S05 EXEC REXXCOMP,MEMIN='MEMBER05'                                        
//S06 EXEC REXXCOMP,MEMIN='MEMBER06'                                        
//S07 EXEC REXXCOMP,MEMIN='MEMBER07'                                        
//S08 EXEC REXXCOMP,MEMIN='MEMBER08'                                        
//S09 EXEC REXXCOMP,MEMIN='MEMBER09'                                        
//S10 EXEC REXXCOMP,MEMIN='MEMBER10'                                        

我想为此作业创建另一个PROC,以触发NCCF MEMSTOUT命令:MEMSTOUT &MEMIN

执行此操作的理想方法是什么?

计时器,路由命令,另一个REXX或JCL作业?

编辑:

理想情况下,我想在PROC中添加以下命令

MVS RO *ALL,%MEMSTOUT &MEMIN

在我们的商店中,Netview命令(%)路由到所有LPARS。

ie

//REXXCOMP PROC                                                        
//         EXEC REXXC,OPTIONS='XREF OBJECT'                            
//REXX.SYSIN DD DSN=SYSAOC.PRODNETV.EXECS(&MEMIN),DISP=SHR          
//REXX.SYSCEXEC DD DSN=SYSAOC.PRODNETV.CEXEC(&MEMIN),DISP=SHR       
//       COMMAND  'RO *ALL,%MEMSTOUT ''&MEMIN''                                
//         PEND                                                                  

我只是不知道如何在COMMAND中合并符号。不断收到JCL运行时错误。

mainframe jcl
1个回答
0
投票

您无法以这种方式做您想做的事。根据documentation ...

因为系统通常会在执行后立即执行流内命令转换后,命令的执行将与输入流中任何作业或作业步骤的执行。至将命令与作业处理同步,告知操作员您要输入的命令以及应在何时发出的命令,然后让操作员从控制台输入它们。

...意味着该命令可能将在执行REXXC的未命名步骤之前执行。

您可以使用IEBGENER通过写INTRDR提交工作来实现您的目标。这也可以解决您的符号替换问题,因为您可以对流内数据使用SYMBOLS参数。

也许像这样...

//REXXCOMP PROC // EXPORT SYMLIST=* // EXEC REXXC,OPTIONS='XREF OBJECT' //REXX.SYSIN DD DSN=SYSAOC.PRODNETV.EXECS(&MEMIN),DISP=SHR //REXX.SYSCEXEC DD DSN=SYSAOC.PRODNETV.CEXEC(&MEMIN),DISP=SHR //SUBCMD EXEC PGM=IEBGENER //SYSUT1 DD *,DLM=$$,SYMBOLS=JCLONLY //jobname JOB job-parameters // COMMAND 'RO *ALL,%MEMSTOUT ''&MEMIN'' //* $$ //SYSUT2 DD SYSOUT=(A,INTRDR) //SYSIN DD DUMMY //SYSPRINT DD SYSOUT=* // PEND

...这只是对您写的内容的徒手修改,但我认为您明白了。
© www.soinside.com 2019 - 2024. All rights reserved.