Chapter 2. Integrating Tivoli Infoman 43
2.2 Creating problem records in Infoman
Each time a job fails, TWS for z/OS changes the status of the job to E (for error).
This status change is the trigger for TWS for z/OS to create a problem record in
Infoman. There are three different types of processing that occur to create the
Infoman problem record, in the following order:
1. The Operation-Status-Change TWS for z/OS exit (EQQUX007)
2. Batch jobs which execute a CLIST and Infoman in batch
3. Infoman Stored Response Chain (SRC)
Some processing occurs within TWS for z/OS, some in batch, and then the final
piece in Infoman. TWS for z/OS provides samples for everything except the
Infoman SRC.
Figure 2-2 shows how the problem records are created in this scenario. This
scenario uses the samples that are provided by TWS for z/OS.
Figure 2-2 Step-by-step creation of problem record in Infoman
TWSz
JOB Fails
TWSz
changes job
Status to E
INFOMAN
Invokes
EQQUX007
Generate batch
job and pass
parameters -
&jobname
&time
&date
&errcode
etc
//TWSGEN JOB …..
Create and execute
CLIST to generate
batch job to create
problem record in
INFOMAN
//TWSINFO JOB …..
PGM(BLGINIT)…..
IRC(INIT,EX TWSSRC..
&jobname,&date,&time
&errcode….
TWSSRC
SRC executes
and creates
problem record
1
2
3
4
5
z/OS
SC64
44 Integrating IBM Tivoli Workload Scheduler with Tivoli Products
The figure shows the TWS for z/OS and Infoman address spaces in the z/OS
system called SC64. Between them are the two batch jobs which execute as part
of the problem record creation process.
The steps are as follows:
1. A TWS for z/OS controlled job fails and has its status changed to E. This
status change triggers TWS for z/OS to call the Operation-Status-Change exit
7 (EQQUX007).
2. TWS for z/OS passes the following data to EQQUX007:
New status
Old status
Operation number
Caller task name
Error code
Workstation name
Application name
Application owner name
Resource group name
Extended status
TWS for z/OS also passes data areas to EQQUX007:
Job-related data area, which contains the following:
Job name
Job number
Current date
Job start time
Job end time
Step name
System abend code
User abend code
Origin Network Job Entry (NJE) node
Proc step name
Operation-related data area, which contains the following:
Operation description
Application input arrival
Operation input arrival
Planned start time
Planned end time
Operation deadline
User data field
Restart information data area
Extended job name
Chapter 2. Integrating Tivoli Infoman 45
Although the exit has access to all this data, the sample EQQUX007 does not
use them all. To use more than the sample, you need to change the
assembler source.
Example 2-1 shows the section of the assembler source where the variables
are set and then inserted into the CLIST.
Example 2-1 Extract of EQQX7ASM source code where variables are created
*---------------------------------------------------------------------*
* INSERT ADDITIONAL RECORDS IN OUTPUT FILE *
*---------------------------------------------------------------------*
INSERT DS 0H
LA R2,FIRSTREC * POINT TO FIRST INSERT RECORD
NEXT DS 0H
C R2,=A(LASTREC) * CHECK IF FINISHED
BC GE,AGAIN * BR IF NO MORE INSERT RECORDS
LA R1,NEXT1 * GET BRANCH ADDR
AL R1,=X'80000000' * REQUEST 31 BIT MODE
BSM 0,R1 * SWITCH TO AMODE 31
NEXT1 DS 0H
MVC RECORD,0(R2) * COPY CURRENT RECORD
CLC =CL8'ERRCODE',RECORD+5 * IS IT ERROR CODE ?
BC NE,NEXT010 * BR IF NOT
L R1,PERRCODE * GET ERROR CODE ADDRESS
MVC RECORD+21(4),0(R1) * COPY ERROR CODE TO RECORD
B PUTIT * WRITE THIS RECORD
The sample EQQUX007 reads skeleton JCL from the UX07IN DD statement.
This DD statement needs to be placed in the TWS for z/OS controller
procedure, as shown in Example 2-2 on page 46.
Note: These parameters and the use of EQQUX007 are documented in
the IBM Tivoli Workload Scheduler for z/OS V 8.2 Customization &
Tuning, SC32-1265.
46 Integrating IBM Tivoli Workload Scheduler with Tivoli Products
Example 2-2 TWS for z/OS controller procedure
//TWSC EXEC PGM=EQQMAJOR,REGION=0M,PARM='TWSC',TIME=1440
//********************************************************************
//* THIS IS A SAMPLE STARTED TASK PROCEDURE FOR AN OPC CONTROLLER ONLY
//* IT SHOULD BE REVIEWED AND MODIFIED AS REQUIRED
//* TO SUIT THE NEEDS OF THE INSTALLATION.
//********************************************************************
//STEPLIB DD DISP=SHR,DSN=TWS.INST.LOADLIB
//EQQMLIB DD DISP=SHR,DSN=EQQ.SEQQMSG0
//EQQMLOG DD SYSOUT=*
//EQQPARM DD DISP=SHR,DSN=TWS.INST.PARM
//SYSMDUMP DD SYSOUT=*
//EQQDUMP DD SYSOUT=*
//EQQBRDS DD SYSOUT=(A,INTRDR)
//EQQEVDS DD DISP=SHR,DSN=TWS.INST.TWSC.EV
//EQQCKPT DD DISP=SHR,DSN=TWS.INST.TWSC.CKPT
//EQQWSDS DD DISP=SHR,DSN=TWS.INST.TWSC.WS
//EQQADDS DD DISP=SHR,DSN=TWS.INST.TWSC.AD
//EQQRDDS DD DISP=SHR,DSN=TWS.INST.TWSC.RD
//EQQSIDS DD DISP=SHR,DSN=TWS.INST.TWSC.SI
//EQQLTDS DD DISP=SHR,DSN=TWS.INST.TWSC.LT
//EQQJS1DS DD DISP=SHR,DSN=TWS.INST.TWSC.JS1
//EQQJS2DS DD DISP=SHR,DSN=TWS.INST.TWSC.JS2
//EQQOIDS DD DISP=SHR,DSN=TWS.INST.TWSC.OI
//EQQCP1DS DD DISP=SHR,DSN=TWS.INST.TWSC.CP1
//EQQCP2DS DD DISP=SHR,DSN=TWS.INST.TWSC.CP2
//EQQNCPDS DD DISP=SHR,DSN=TWS.INST.TWSC.NCP
//EQQCXDS DD DISP=SHR,DSN=TWS.INST.TWSC.CX
//EQQJTARC DD DISP=SHR,DSN=TWS.INST.TWSC.JTARC
//EQQJT01 DD DISP=SHR,DSN=TWS.INST.TWSC.JT1
//EQQJT02 DD DISP=SHR,DSN=TWS.INST.TWSC.JT2
//EQQJT03 DD DISP=SHR,DSN=TWS.INST.TWSC.JT3
//EQQJT04 DD DISP=SHR,DSN=TWS.INST.TWSC.JT4
//EQQJT05 DD DISP=SHR,DSN=TWS.INST.TWSC.JT5
//EQQJCLIB DD DISP=SHR,DSN=TWS.INST.JCLIB
//EQQINCWK DD DISP=SHR,DSN=TWS.INST.INCWORK
//EQQSTC DD DISP=SHR,DSN=TWS.INST.STC
//EQQJBLIB DD DISP=SHR,DSN=TWS.INST.JOBLIB
//EQQPRLIB DD DISP=SHR,DSN=TWS.INST.JOBLIB
//*
//* DATASETS FOR EQQUX007
//UX07IN DD DISP=SHR,DSN=TWS.INST.EQQUX007.INPUT.JCL
//UX07OUT DD SYSOUT=(A,INTRDR)

Get Integrating IBM Tivoli Workload Scheduler with Tivoli Products now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.