Operating Systems

Your installation will determine which exits are required based on their chargeback, reporting or audit needs. Our primary recommendation is that you understand the reason for each exit and document it in parmlib member PROGxx, which defines all exits. You’ll still need to maintain SMFPRMxx to indicate which exits are to be called for each subsystem.

If an exit is only needed for one subsystem, then include it on the SUBSYS statement, not the SYS statement. Watch out when IBM adds new exits. As an example, originally there was an exit IEFU83, which was called prior to an SMF record being written. An application would pass a record to SMF using the SMFWTM macro, and SMF would call IEFU83 with the record. The exit could choose to delete the record, modify it or perform some action based on the record’s contents. Then IBM came out with a new macro, SMFEWTM, that could be used by applications to pass records to SMF. If SMFEWTM was called with an option of BRANCH=NO, exit IEFU83 was still called. But if SMFEWTM was called with an option of BRANCH=YES and MODE=XMEM (branch entry and cross-memory mode), then SMF called a different exit, IEFU84. And if the macro was called with an option of BRANCH=YES and without MODE=XMEM (just branch entry), then SMF called a different exit again, IEFU85. When IBM added these new exits, most people didn’t notice, so many SMF records were bypassing the exits. Our SMF Reference Summary at www.watsonwalker.com/references.html shows which of these three exits is called for each record type.

If you don’t want to code your own exits, there are two software products that provide exits (and don’t require Assembler knowledge). They are OS/EM from Trident Services (www.triserv.com) and Easy/Exit from DTS Software (www.dtssoftware.com).

Life of an Address Space

An address space may be one of four types of spaces according to SMF: TSO users, batch jobs, started tasks (including system address spaces) and APPC scheduler (ASCH) address spaces. With the exception of the system address spaces, the lives of the address spaces are recorded from the initiation to the termination of the address space. A type 30 SMF record is the most common record type associated with address spaces, but we’ll also address types 6, 26 and 32 records.

Figure 2 shows the life of an address space in SMF processing and this discussion will continue to refer to that figure. The left-most column indicates the point in the life of the address space, along with the records (if any) that are produced. The items indicated by a ▼ show some of the elapsed times that may be calculated from various timestamps. And the right column identifies SMF exits that are invoked. Although we use the term “job” throughout this article, we use it to mean any type of address space, including TSO users and started tasks.

Job Start-Up

As you can see from Figure 2, a job is read into the system and the JCL is scanned and converted. During this time, the IEFUJV SMF exit is invoked but no SMF records are written. The IEFUJV (job validation) exit can be used to edit and modify the JCL. The IEFUJV exit is actually called three times: before the line is processed by the converter, after the line is processed by the converter and one time after all lines have been processed. This is the most common exit used to validate job names, security and accounting codes. IBM recommends that you use the IEFUAV exit instead of IEFUJV for APPC/MVS work.

Job Initiation

5 Pages