Precisely recommends using either Started Tasks or the z/OS Master Controller for large numbers of Apply Engines.
Example
Execute three (3) SQDdata Engine subtasks under the z/OS Master Controller using the sample member MULTMAST as the startup parameter file. Note the use of separate report DD statements for each engine subtask.
Specify that the operational state of ENGINE1 should be remain the same between z/OS Master Controller executions. If ENGINE1 is down when the z/OS Master Controller is stopped, it will remain down when the Master is restarted. If ENGINE1 is up when the Master is shutdown, it will be started when the Master is restarted.
MASTIMSB Parmlib member included in the distribution
---------------------------------------------------------------------
-- SAMPLE PARM THAT CAN BE USED FOR RUNNING MULTIPLE APPLY ENGINES
-- UNDER THE MASTER CONTROLLER
---------------------------------------------------------------------
QMGR=N/A
CMDQUE=SQDATA.CMDQUE
TASKDD=SQDFILE
WTOR=Y
WTORMSG=SQDATA TEST ENGINES READY
FAILJOB=N
FAILMAX=1
-------------
NAME=ENGINE1
PGM=SQDATA
AUTOSTART=Y
NEWADDRSP=Y
SCRIPT='SQDATA.V400.SQDOBJ(ENGINE1)'
QUEUE=ENGINE1@SHM
-------------
NAME=ENGINE2
PGM=SQDATA
AUTOSTART=Y
NEWADDRSP=N
SCRIPT='SQDATA.V400.SQDOBJ(ENGINE2)'
QUEUE=ENGINE2@SHM
-------------
NAME=ENGINE3
PGM=SQDATA
AUTOSTART=Y
NEWADDRSP=N
SCRIPT='SQDATA.V400.SQDOBJ(ENGINE3)'
QUEUE=ENGINE3@SHM
Note:
- AUTOSTART=Y instructs the z/OS Master Controller to shutdown if the Apply Engine stops.
- The program name of the subtask is DFSRRC00, which is the name of the IMS control module. The SQData program required to run under IMS only is SQDATAI.
- The parm usually passed to IMS must be specified as the SCRIPT= value.
Master Controller JCL
SQDAMAST
sample included in the distribution
//*--------------------------------------------------------------------
//* Sample JCL to Run the SQData Master Controller SQDAMAST
//*
//* Add additional DD statements or Libraries as required
//*--------------------------------------------------------------------
//*********************************************************************
//*
//JOBLIB DD DISP=SHR,DSN=SQDATA.V400.LOADLIB
// DD DISP=SHR,DSN=IMS.SDFSRESL
//*
//SQDATA EXEC PGM=SQDAMAST
//SQDPARM DD DISP=SHR,DSN=SQDATA.V400.PARMLIB(MASTIMS)
//SQDFILE DD DISP=SHR,DSN=SQDATA.V400.SQDOBJ(IMSTOIMS)
//SYSPRINT DD SYSOUT=*
//ENGINE1 DD SYSOUT=*
//*
//FAILJCLI DD DISP=SHR,DSN=SQDATA.V400.CNTL
//FAILJCLO DD SYSOUT=(H,INTRDR)
//*
//**** PARM WORK FILE - REQUIRED IF UPSTATE=Y
//SQDPWRK DD DISP=SHR,DSN=SQDATA.V400.PARMLIB(PARMWORK)
Master Controller JCL
SQDMAST
sample included in the distribution
//*--------------------------------------------------------------------
//* Sample JCL to Run the SQData Master Controller SQDAMAST
//*
//* Add additional DD statements or Libraries as required
//*--------------------------------------------------------------------
//*********************************************************************
//*
//JOBLIB DD DISP=SHR,DSN=SQDATA.V400.LOADLIB
//SQDATA EXEC PGM=SQDAMAST
//SQDPUBL DD DISP=SHR,DSN=SQDATA.NACL.PUBLIC
//SQDPKEY DD DISP=SHR,DSN=SQDATA.NACL.PRIVATE
//SYSPRINT DD SYSOUT=*
//ENGINE1 DD SYSOUT=*
//ENGINE2 DD SYSOUT=*
//ENGINE3 DD SYSOUT=*
//SQDLOG DD SYSOUT=*
//*SQDLOG8 DD DUMMY
//CEEDUMP DD SYSOUT=*
//*
//SQDPARM DD DISP=SHR,DSN=SQDATA.V400.PARMLIB(MASTMULT)
//*
//FAILJCLI DD DISP=SHR,DSN=SQDATA.V400.FAILJCL
//FAILJCLO DD SYSOUT=(H,INTRDR)
//**** PARM WORK FILE - REQUIRED IF UPSTATE=Y
//SQDPWRK DD DISP=SHR,DSN=SQDATA.V400.PARMLIB(PARMWORK)
Note:
- DD statements specifying SYSOUT are required for each Engine subtask.
- The SQDPWRK DD statement is required by the UPSTATE Parameter.