z/OS MVS Installation Exits
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


IEFACTRT — SMF Job and Job Step Termination Exits

z/OS MVS Installation Exits
SA23-1381-00

Topics for This Exit Appear as Follows:

IEFACTRT receives control from the system when a job or job step terminates, either normally or abnormally. A return code from IEFACTRT (in register 15) indicates whether the job is to continue or terminate. Another return code (in register 1) indicates whether or not SMF is to write the termination records to the SMF data set.

The system invokes IEFACTRT only when the installation is collecting SMF record types 4, 5, 30, 32, 34, or 35. IEFACTRT is invoked for:
  • Record types 4, 5, and 30 for background jobs and started tasks.
  • Record types 30, 32, 34, and 35 for TSO/E users.
  • Record type 30 (subtypes 4 and 5) for work initiated by the IBM-supplied APPC/MVS transaction scheduler (ASCH).

When the data for an SMF record exceeds 32,756 bytes in length, the system constructs one or more "continuation" or "additional" records to ensure that no individual record exceeds that length. The system invokes IEFACTRT once for the original record and once for each continuation record.

The system invokes IEFACTRT for these types of records even when an installation uses the SYS(NOTYPE) parameter in SMFPRMxx to suppress a particular subtype of these record types. Only when the installation suppresses an entire record type through SMFPRMxx will the system not pass the record to IEFACTRT.

The system does not invoke IEFACTRT for any other record types.

You can use IEFACTRT to:
  • Write selected job or job step records to an installation-defined data set for further analysis.
  • Displacement from PointerInclude additional information in the SMF job/job step termination records.
  • Write messages to a job log to provide additional information about the job or job step. For example, if the operator has cancelled a job, you can issue a WTOR to learn why the job was cancelled and then write the reason as a message to the job log.
  • Write an estimated job or job step cost to the job log.
  • Update tables that describe the amount of resources certain users consume. For example, you can keep a total of the processor time for specific users, then flag their account numbers if they exceed an allowed time limit.

Defining the Exit in SMFPRMxx

In the SMF parmlib member (SMFPRMxx), specify IEFACTRT on the EXITS option of the SYS or SUBSYS parameters, depending on the scope of work (system-wide or subsystem-wide) the exit is to affect.

If you use the SUBSYS option, the system invokes the IEFACTRT routine only for work running under the subsystems you specify on SUBSYS. If you use the SYS option, the system invokes the IEFACTRT routine for work running under any SMF-defined subsystem, such as JES2, JES3, STC, ASCH, OMVS, or TSO.

For more information about coding the EXITS option, see the description of SMFPRMxx in z/OS MVS Initialization and Tuning Reference.

Controlling the Exit Routine Through the Dynamic Exits Facility

IBM® has defined the IEFACTRT installation exit to the dynamic exits facility. You can refer to the exit by the name SYS.IEFACTRT or SYSyyy.IEFACTRT. See the description of the SMFPRMxx parmlib member in z/OS MVS Initialization and Tuning Reference for an explanation of the naming conventions for SMF exit routines. You can use the EXIT statement of the PROGxx parmlib member, the SETPROG EXIT operator command, or the CSVDYNEX macro to control this exit and its exit routines.

To define IEFACTRT to the dynamic exits facility, you must specify the exit in both PROGxx and SMFPRMxx. The system does not call the exit if it is defined in PROGxx only. If you do not plan to use the dynamic exits facility for IEFACTRT, you need only define this exit in SMFPRMxx.

If you do not associate any exit routines with exit IEFACTRT in PROGxx, the system defaults to using the exit routine name that matches the exit name (IEFACTRT).

If you associate exit routines with IEFACTRT in PROGxx, the system does not use the default exit routine. If you need the default exit routine, you should explicitly add it to PROGxx.

You can use the ADDABENDNUM and ABENDCONSEC parameters on the CSVDYNEX REQUEST=ADD macro or the ABENDNUM parameter of the SETPROG EXIT operator command to limit the number of times the exit routine abnormally ends before it becomes inactive. An abend is counted when both of the following conditions exist:
  • The exit routine does not provide recovery, or the exit routine does provide recovery but percolates the error
  • The system allows a retry; that is, the recovery routine is entered with bit SDWACLUP off.
By default, the system does not disable the exit routine.

Exit Routine Environment

IEFACTRT receives control in the following environment:
  • Enabled for interrupts.
  • In supervisor state with PSW key 0.
  • In AMODE 31.
  • In the address space of the task that is currently running.
  • With no locks or ENQs held.

Exit Recovery

IBM strongly recommends that you set up an ESTAEX recovery routine to handle errors that might occur during the execution of IEFACTRT.

An ESTAE-type recovery routine is set up by the module that calls IEFACTRT; the recovery routine, if it gets control, will allow the job to continue processing if the exit routine abnormally ends.

Whether or not the exit routine continues to be invoked depends on the abend processing of the dynamic exits facility.

Exit Routine Processing

SMF constructs several types of termination records. An installation can use the IEFACTRT exit routine to include additional information in the termination record and to determine whether to write the termination record to the SMF data set. The specific SMF termination records that IEFACTRT references are:
Dec (Hex)
Description
4 (X'04')
The step termination record is constructed and written at the normal or abnormal termination of a job or job step for a background job, or when a job step is flushed during or after job initiation.
5 (X'05')
The job termination record is constructed and written at the normal or abnormal termination of a background job.
30 (X'1E')
The common address space work record is written at the normal or abnormal termination of a batch job or step, a TSO/E session, a started task, or work initiated by the IBM-supplied APPC/MVS transaction scheduler and at the expiration of a specified interval. The type 30 record consolidates data that also is found in record types 4, 5, 20, 34, 35, and 40. Record subtypes are used within the type 30 record to help limit the amount of data stored in SMF data sets.
32 (X'20')
The TSO/E user work accounting record is written when a TSO/E session terminates (normally or abnormally) and when a TSO/E accounting interval expires.
34 (X'22')
The TSO-step termination record is constructed and written when the TSO/E logoff function processes a job step termination.
35 (X'23')
The logoff record is constructed and written when a logoff process is completed.

At job or job step termination, use the termination indicators in record types 4, 5 and 30 to determine whether or not IEFACTRT cancelled the job.

The length of the type 30 record is variable. If the data exceeds 32,756 bytes, the system constructs "continuation" (or "additional") type 30 records. Each such record always contains these three sections:
  • Header section
  • Subsystem section
  • Identification section
In addition, each continuation record contains one or more of the following sections:
  • Execute channel program (EXCP) section
  • Usage section
  • Automatic restart management section
  • z/OS® UNIX process section

Your exit routine should be aware of these added type 30 continuation records, because they are passed to IEFACTRT. See the CAUTION bullet in the next topic, "Programming Considerations," if the exit routine suppresses some of these records. See z/OS MVS System Management Facilities (SMF) for more information concerning type 30 records.

IEFACTRT is the only SMF exit routine that can write to a job log, but only by passing the message to module IEFYS. When IEFYS receives control, register 13 must contain the address of an 18-word save area and register 12 must be used to pass message information. Figure 1 shows the procedure for writing JOBLOG messages from IEFACTRT. The maximum number of characters that can appear in a message is 132.

Figure 1. Writing Job Log Messages from IEFACTRT
         MVC   36(4,12),MSGADDR  MOVE MESSAGE ADDRESS AND
         MVC   42(2,12),MSGLEN   LENGTH TO SYSTEM TABLE
         L     REG15,VIEFYS      BRANCH AND LINK TO MESSAGE
         BALR  REG14,REG15       ROUTINE

MSGADDR  DC    A(MSG)
MSG      DC    C'message text'
MSGLEN   DC    H'xx'             MESSAGE LENGTH
VIEFYS   DC    V(IEFYS)

To resolve the VCON for IEFYS correctly, be sure to follow the example in Figure 2 which shows how to make an IEFACTRT installation exit routine available to the system by link editing it into a system library.

Figure 2. Example: make an IEFACTRT installation exit routine available
 //LKUSRPGM     JOB     MSGLEVEL=(1,1)
 //             EXEC    PGM=IEWL,PARM='XREF,LET,LIST'
 //SYSPRINT     DD      SYSOUT=A
 //SYSUT1       DD      UNIT=SYSDA,SPACE=(TRK,10)
 //SYSLMOD      DD      DSNAME=SYS1.LINKLIB,DISP=OLD
 //SYSLIB       DD      DSNAME=SYS1.AOSB3,DISP=SHR
 //SYSLIN       DD      *
     object deck
          INCLUDE    SYSLIB(IEFTB724)
          NAME       EXITNAME(R)
 /*

Programming Considerations

SMF provides a replaceable module for an unused exit. If an installation includes IEFACTRT, it must follow certain programming standards.
  • The exit routine must follow standard linkage conventions. For example, upon exit, register 15 must contain the return code. (But see the note in the topic "Registers at Exit" later in this topic.)
  • Code the exit routine to be reentrant.
  • IEFACTRT can perform dynamic allocations and write to installation-defined data sets. In foreground jobs, data sets are allocated dynamically. However, for background jobs, you can either allocate data sets dynamically or you can pre-define (pre-allocate) a data set with a DD statement in the initiator cataloged procedure.
  • IEFACTRT cannot access ISAM data sets.
  • Do not use a WTO with a routing code of 11 to send a message to the JESYSMSG data set for started tasks or TSO users.
  • To provide a consistent environment for accessing and allocating data sets across calls to SMF exits for the duration of a job or task, IEFACTRT receives control with the initiator's JSCB active.
  • When there are multiple data records, the IEFACTRT exit routine receives control once for each record.
  • CAUTION: If the IEFACTRT installation exit elects to suppress one or more BUT NOT ALL of the SMF type 30 continuation records, then follow-on batch jobs that process SMF records might encounter unexpected and invalid conditions, such as:
    • "Continuation" type 30 records without the initial type 30 record
    • An initial type 30 record indicating that more type 30 records follow, but some or all of those continuation records are not present.
Macro Instructions and Restrictions: Your IEFACTRT exit routine can issue MVS™ system macros. Observe the following restrictions:
  • Do not code your IEFACTRT exit routine to issue the WAIT macro, or call a service that issues WAIT. Doing so in IEFACTRT can adversely affect the system's allocation and unallocation functions.
  • Do not use a WTO with a routing code of 11 to send a message to the JES joblog for started tasks or TSO users.
The following SMF macros are available to SMF installation exit routines:
  • IFASMFR — to address SMF record fields
  • SMFWTM — to write records to the SMF data set
  • SMFEWTM — to write records to the SMF data set
  • SMFRTEST — to test record recording
  • SMFEXIT — to branch to the SMF exits
  • SMFINTVL — to determine interval time
  • SMFDETAL — to test detail recording
  • SMFSUBP — to determine subsystem parameters
  • SMFCHSUB — to change subsystem parameters.

For information on how to use these macros, see z/OS MVS System Management Facilities (SMF).

Entry Specifications

SMF passes to IEFACTRT a code to define the reason for calling the exit routine and a list of parameter addresses that the routine can use.

Registers at Entry: The contents of the registers on entry to the exit are as follows.

Register
Contents
0
One of the following hexadecimal codes that indicate why SMF has invoked the exit:
Code
Explanation
X'0C'
Indicates job step termination. Word 10 in the parameter list is the address of the record descriptor word (RDW) for a type 4 or type 34 record.
X'10'
Indicates job termination. Word 10 in the parameter list is the address of the RDW for a type 5 or type 35 record.
X'14'
Indicates job or step termination. Word 10 in the parameter list is the address of the RDW for a type 30 record. The subtype field in the type 30 record determines if it is a job or a step termination record.
X'18'
Indicates TSO/E session or accounting interval termination. Word 10 in the parameter list is the address of the RDW for a type 32 record.
1
Address of the parameter list
2-11
Not applicable
12
Address of a message information area, which can be used to interface to IEFYS.
13
Register save area
14
Return address
15
Entry point address of IEFACTRT
Parameter Descriptions: Register 1 points to the following list of addresses:
Word 1
Address of the common exit parameter area. For details, see Common Exit Parameter Area.
Word 2
Address of an 8-byte area containing the job step name (in EBCDIC). This area is aligned left and padded with blanks if necessary. At job termination, the field is zero.
Note: It is possible that some address spaces will be associated with IEESYSAS. For that case, JMRJOB will contain IEESYSAS.
Word 3
Address of a 20-byte area containing the programmer's name (in EBCDIC). This area is aligned left and padded with blanks if necessary.
Word 4
Address of a 4-byte area. The first 3 bytes contain the job processor time (which includes time under TCBs, enclave time, preemptable class SRB time, and client SRB time), in hundredths of a second (in binary). The last byte contains the number of accounting fields in the JOB statement. At job termination, the field is zero.
Note: Since this job processor time is only 3 bytes it is limited to 46 hours. If the job accumulates more than this amount of processor time, this field will become invalid. You can avoid this situation by having your exit get the processor time from the parameter at word 11.
Word 5
Address of a variable length area that contains accounting fields from the JOB statement. For details, see Table 2.
Word 6
Address of a 4-byte area. The first 3 bytes contain the step processor time (which includes time under TCBs, enclave time, preemptable class SRB time, and client SRB time), in hundredths of a second (in binary). The last byte contains the number of accounting fields in the EXEC statement (in binary). At job termination, the field is zero.
Note: Since this step processor time is only 3 bytes it is limited to 46 hours. If the step accumulates more than this amount of processor time, this field will become invalid. You can avoid this situation by having your exit get the processor time from the parameter at word 12.
Word 7
Address of a variable length area that contains accounting fields from the EXEC statement. For details, see Table 2.
Word 8
Address of a 2-byte area. The first byte is a binary indicator; if bit 7 (low-order bit) is set to 1 when the exit routine is entered, the job has been cancelled. If the exit routine sets bit 7 to 1, the job will be cancelled. The second byte contains the number of the job step currently being processed. At job termination, the second byte contains the number of steps in the job.
Word 9
Address of a 2-byte area containing the termination status (condition or completion code) for the job or job step. For information on the job or job step termination status, see the description of the following fields in z/OS MVS System Management Facilities (SMF):
  • Record Type 4 — field SMF4SCC
  • Record Type 5 — field SMF5JCC
  • Record Type 30 — field SMF30SCC
  • Record Type 34 — field TIVSTAT
Word 10
Address of an area containing a 4-byte record descriptor word (RDW). One of the following records immediately follows the RDW:
  • The job step termination record (type 4 or type 34)
  • The job termination record (type 5 or type 35)
  • The common address space work record (type 30)
  • The TSO/E command accounting record (type 32)
Word 11
Address of a 4-byte area containing the job processor time, which includes time under TCBs, enclave time, preemptable class SRB time, and client SRB time, in hundredths of a secondary (in binary).
Word 12
Address of a 4-byte area containing the step processor time, which includes time under TCBs, enclave time, preemptable class SRB time, and client SRB time, in hundredths of a second (in binary). At job termination, the field is zero.
Word 13
Address of a 4-character area that contains the name of the subsystem for the job being processed. Examples:
  • ASCH, JES2, or JES3 - indicates the name of the subsystem that selected the job
  • OMVS - indicates a forked or spawned address space
  • STC - indicates a started task
  • TSO - indicates a time sharing option task
  • The jobname - used if it is four or fewer characters and none of the others apply
Note: The high-order bit is set in the address of the last parameter to indicate the end of the parameter list.
Figure 3. IEFACTRT Input Parameter Structure
IEFACTRT Input Parameter Structure

Common Exit Parameter Area

The common exit parameter area is a 56-byte area that contains information an SMF installation exit routine might need. It is a copy of the first 56 bytes of the job management record (JMR), of which the first 36 bytes are usable by the exit. In addition, byte 56 is a version indicator, which indicates whether additional information is available. When byte 56 is '01'x, an additional area is provided at offset 76, mapped by the JMRE DSECT within the JMR and contains an 8 character jobclass and a 64-byte job correlator, if provided by the primary JES subsystem.

The address of the common exit parameter area is passed to all SMF installation exits except IEFU29, IEFU83, IEFU84, and IEFU85. The common exit parameter area is mapped by macro IEFJMR, as part of the JMR, except for the indicator of the SMF option selected by the user field. This field is mapped by the SMCAOPT field in the SMCA data area. See Table 1 for a description of the area, and Accounting Information for a description of the accounting information. See z/OS MVS Data Areas in z/OS Internet Library at http://www.ibm.com/systems/z/os/zos/bkserv/ for the complete mapping of the JMR and the complete mapping of the SMCA.

Table 1. Common Exit Parameter Area
Displacement from Pointer Field Size Data Format Description
0 8 EBCDIC Job name
8 4 binary Time, in hundredths of a second, when the reader recognized the JOB statement for this job
12 4 packed Date when the reader recognized the JOB statement for the job, in the form 0CYYDDDF where F is the sign and C is X '1' if the year is greater than 1999
16 4 EBCDIC System identification (taken from SID parameter)
20 8 EBCDIC User identification. SMF places this data in all subsequent records for this job. This field is initialized to EBCDIC blanks when each job is read.

Note: This field is not related to the USER parameter on the JOB statement.

28 1 binary Number of the step being processed
29 1 binary Indicator of the SMF options selected by the user. (The following bit settings are mapped by the SMCAOPT field in the SMCA data area. See z/OS MVS Data Areas in z/OS Internet Library at http://www.ibm.com/systems/z/os/zos/bkserv/ for a mapping of the SMCA data area.)
Bit
Meaning When Set
0
Reserved
1
Reserved
2
Reserved
3
Data set accounting.1
4
Volume accounting. Record type 19 selected
5
Usage data collection services
6
Type 17 records will be written for temporary data sets (REC(ALL))
7
If 0, background job. If 1, foreground job.
Note: TSO sessions, APPC/MVS transactions, and OMVS (z/OS UNIX System Services) forked and spawned jobs are indicated as foreground jobs.
30 1 binary Restart indicator
Bit
Meaning When Set
0
Automatic step restart
1
Automatic checkpoint/restart
2
Continue restart
3
Reserved
4
Warm start
5-7
Reserved
31 1 EBCDIC Job class
32 4 binary The user-communication field. This field is intended for communication among user-written exit routines within a unique job. The field is initialized to zeroes when a job begins execution. For APPC/MVS transactions, this field remains zeros.
36 19 binary Information not usable to the exit
55 1 binary Version of JMR
56 20 binary Information not usable to the exit
76 8 EBCDIC Job class
84 64 EBCDIC Job correlator, if provided by primary Job subsystem
Note: 1 This bit is set on when any of the following record types is selected: 14, 15, 17, 18, 62, 63, 64, 67, or 68.

Accounting Information

Accounting Information: These SMF installation exits receive accounting information for the job or job step:
  • IEFACTRT
  • IEFUAV
  • IEFUJI
  • IEFUSI

The accounting information is presented to IEFACTRT differently than to IEFUAV, IEFUJI, and IEFUSI. IEFACTRT receives both the number of accounting fields and a pointer to the accounting fields in the input parameter list. See the parameter descriptions in Entry Specifications for more details. For the other exits, the input parameter list contains a pointer to all the accounting information as described in Table 2.

Table 2. Format of Accounting Information
Offset Length Format Description
0 1-Byte Binary Number of accounting fields.
1 Variable EBCDIC Accounting fields. Each accounting field contains the length of the field (one byte, binary) followed by accounting information (variable length, EBCDIC). A zero in the length field indicates an omitted field.

Figure 4 provides examples of accounting information. Note that these fields are contiguous and are only spaced in Figure 4 for clarity. These examples show different forms of accounting information you can specify in JCL, and the resulting representation (hexadecimal) that will be passed to the SMF exits list.

In the examples in Figure 4:
  • 'MYJOB' represents the job name.
  • 'PROGNAM' represents the programmer name.
  • '#FIELDS' represents the number of accounting fields.
  • 'LEN1', 'LEN2', and 'LEN3' represent the length of the respective accounting field.
  • 'DATA1', 'DATA2', and 'DATA3' represent data in the respective accounting field.
Figure 4. Examples of Accounting Information
                                 .........Accounting Information.........
   JCL                                   .......Accounting Fields........
                                 #FIELDS LEN1 DATA1 LEN2 DATA2 LEN3 DATA3
-------------------------------------------------------------------------
//MYJOB JOB ,PROGNAM          -> 01      00
//MYJOB JOB 9,PROGNAM         -> 01      01   F9
//MYJOB JOB (9,8),PROGNAM     -> 02      01   F9    01   F8
//MYJOB JOB (9,8,77),PROGNAM  -> 03      01   F9    01   F8    02   F7F7
//MYJOB JOB '9',PROGNAM       -> 01      01   F9
//MYJOB JOB '9,8',PROGNAM     -> 01      03   F96BE8
//MYJOB JOB ('9','8'),PROGNAM -> 02      01   F9    01   F8
//MYJOB JOB ('9,8'),PROGNAM   -> 01      03   F96BF8
//MYJOB JOB (9,,8),PROGNAM    -> 03      01   F9    00         01   F8
//MYJOB JOB (9,',8),PROGNAM   -> 03      01   F9    00         01   F8
//MYJOB JOB ((9)),PROGNAM     -> 01      01   F9

Return Specifications

A return code from IEFACTRT (in register 15) indicates whether the job is to continue or terminate. Another return code (in register 1) indicates whether or not SMF is to write the termination records to the SMF data set.

If you associate multiple exit routines with IEFACTRT, you can use any of these criteria methods to specify how the system is to handle the return information:
  • The ATTRIB KEEPRC function of the SETPROG EXIT command,
  • The ATTRIB KEEPRC parameter of the EXIT statement of PROGxx, or
  • The RCFROM/RCCOMPARE parameters of the CSVDYNEX services.

The criterion is based on the contents of register 15. If multiple exit routines match the defined criterion, the system returns information from the exit routine called first.

Figure 5. Example
The defined criterion is EXIT ATTRIB KEEPRC(GE,4).

If  Exit A returns with  R1 = 4  and  R15 = 0,
and Exit B returns with  R1 = 0  and  R15 = 8,
and Exit C returns with  R1 = 0  and  R15 = 4,
and Exit D returns with  R1 = 4  and  R15 = 4,

the final results are    R1 = 0  and  R15 = 8.

The system derives the return information from the first exit called that
matches the defined criteria. Here, R15 is greater or equal to 4, which
is Exit B.

The job continues (because R15 is not 4) and the system writes the
termination records to the SMF data set (because R1 for Exit B is not 4).

If you do not specify a criteria method, the system returns the information from the first exit routine that returns a value of four in register 15, and cancels the remaining job steps. If that exit routine also returns a value of four in register 1, the system does not write the termination records to the SMF data set. For any other value in register 1 the system does write the termination records.

Figure 6. Example
There are no defined criteria.

If  Exit A returns with  R1 = 4  and  R15 = 0,
and Exit B returns with  R1 = 0  and  R15 = 8,
and Exit C returns with  R1 = 0  and  R15 = 4,
and Exit D returns with  R1 = 4  and  R15 = 4,

the final results are    R1 = 0  and  R15 = 4.

The system derives the return information from the first exit called that
returns a value of 4 in R15, which is Exit C.

The job terminates (because R15 is 4) and the system writes the
termination records to the SMF data set (because R1 for Exit C is not 4).

If no exit routine returns a value of four in register 15, the system returns the information from the exit routine that is called first, and the job continues. Again, if that exit routine returns a value of four in register 1, the system does not write the termination records to the SMF data set, while for any other value in register 1 from that exit routine, the system does write the termination records to the SMF data set.

Figure 7. Example
There are no defined criteria.

If  Exit A returns with  R1 = 4  and  R15 = 0,
and Exit B returns with  R1 = 0  and  R15 = 8,
and Exit C returns with  R1 = 0  and  R15 = 0,

the final results are    R1 = 4  and  R15 = 0.

Because no exit set R15 to 4, the system derives the return information
from the first exit called, which is Exit A.

The job continues (because R15 is not 4) and the system does not write
the termination records to the SMF data set (because R1 for Exit A is 4).

Registers at Exit: Upon return from the exit processing, the register contents must be as follows.

Register
Contents
0
Restored to contents at entry
1
One of the following return codes:
Return Code
Explanation
Value of 4
SMF is not to write the termination record to the SMF data set.
Other than 4
SMF is to write the termination record to the SMF data set.
2-14
Restored to contents at entry
15
One of the following return codes:
Return Code
Explanation
Value of 4
The remaining job steps are to be cancelled.
Other than 4
Job processing is to continue.
Note: The system may fail a step or job even if the return code is zero. This could happen, for example, as a result of specifying CATLG_ERR FAILJOB(YES) and incurring that type of post execution error. (A return code is generated by the application program and is never changed by the operating system.) A user can deduce that a step failed due to a "post execution error" if bit SMF30SYE in the two-byte SMF30STI field in the SMF30 subtype 4 record is on.

Coded Example of the Exit Routine

Sample IEFACTRT exit routines are provided in SYS1.SAMPLIB in members SMFEXITS and IEEACTRT. The sample in SMFEXITS changes the SMF job termination (types 5 and 35) and job step termination (types 4 and 34) records to user records, and attempts to write them to an SMF data set. If the data set is full, the routine writes a message to the console indicating that SMF records are being lost. At job termination, the routine writes a record containing the job name, programmer's name, and account number to the JOBLOG data set.

The IEEACTRT exit routine puts a summary of the step on each JES2 job log using WTO with ROUTCODE=14. The summary includes both step and job information.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014