Previous Topic: User Exits

Next Topic: Account Exit

Input Exit

The input exit, if activated, is to pass each SMF record as it is read from the CAIJSSMF file (accepts only SMF records). This exit may modify, delete, or insert records prior to the editing, validating, and formatting logic applied by CA JARS. This exit is invoked by placing the load module name in positions 43-50 of the CA JARS PARMS statement.

The parameter list passed to the input exit routine has the following format:

Word

Description

1

Address of the SMF record about to be processed by CA JARS (pointing to the 4-byte Record Descriptor Word (RDW))

2

Address of a 1-character disposition indicator

3

Address of a 1-character insertion indicator

4

Address of user data area

A value of EBCDIC blank (hex '40') in the disposition indicator on entry to the input exit indicates that an SMF record is available to be processed. If the exit needs to modify or extract information from the record, it can do so at this time.

If the modifications include a change to the record length, the exit must move the record to its own work area, make the required modifications to the record in the work area, then store the address of the modified record back into the first word of the parameter list before returning control to CA JARS.

For the exit to delete the record from further processing, it must set the disposition indicator to any nonblank value before returning control to CA JARS. In order to insert records into the input stream, the exit must set the insertion indicator to any nonblank value, and store the address of the record to be inserted in the first word of the parameter list before returning control to CA JARS.

When the user exit is next invoked, after the inserted record has been processed, it will again receive a pointer to the original SMF record, which it can now choose to process or delete, or it can continue inserting records of its own. (Inserting SMF records requires that the exit be written in Assembler.)

The user data area pointed to by the fourth parameter is a 26-byte area with the following format:

Position

Description

1-16

16-byte character field (initialized to spaces)

17-21

5-byte packed decimal integer field (initialized to zero)

22-26

5-byte packed decimal field interpreted as time in hours to five decimal places (initialized to zero)

While this parameter is always available to the exit routine, its contents will be of value only when one of the following SMF record types has been made available to the exit routine:

SMF Record Number

Description

30

(subtype 2) Interval

30

(subtype 3) Interval End

30

(subtype 4) Step/Session End

30

(subtype 5) Job End

48

RJE Session Logoff

This area is appended to the transmittal (work) records created from each of these SMF record types and will be placed in the corresponding fields of the job or step accounting records. Note that if job level user fields are not changed from their initial values, the numeric fields from the step level records will be accumulated to the job account record, which requires that the packed decimal fields contain valid data.

In the case of one-step jobs, the user fields from the step level will be used for the one-step job account record.

A value of high-values (hex 'FF') in the disposition indicator on entry to the input exit indicates that end-of-file has been reached on SMFINP. No record is available for processing at this point, nor can any additional records be inserted. The user should take this opportunity to have the input exit prepare totals, generate user-formatted reports, close files, and so forth.

An account code in a z/OS job statement, for example, (1234,ABCD,X,Y,Z), is stored in an SMF record as a series of pairs consisting of one byte binary length followed by the account code element. From this example the data would be stored as:

x'04'1234 x'04'ABCD x'01'X x'01'Y x'01'Z

The space between pairs has been added for readability. The notation x'nn' indicates a one byte binary field, in hexadecimal representation. When the SMF record is processed, the length fields are removed from the data. In this example the account codes would be stored in the JARS STEP, JOB, or EXTDATA record as 1234ABCDXYZ.

Sample input exit CAJRDEXT can be used to restore the comma delimiters to account codes in the SMF record before the record is processed.

After APPLY processing, macro CAJRDEXT will be in CAJRSAMP. CAJRDEXT is a sample input exit, and can be considered as an option for CA JARS. This input exit, if activated, processes each SMF record type 4, 5, 20, 26, and 30 from the CAIJSSMF file which accepts only SMF records. The sample exit is invoked by:

  1. Assembling and link-editing CAJRSAMP member CAJRDEXT.
  2. Adding to the STEPLIB concatenation list the load library containing the resultant load module.
  3. Placing the load module name (CAJRDEXT) in positions 43-50 of the PARMS control statement.

Note: Input Exit CAJRDEXT is written as non-reentrant code, and must be link-edited with parms AC(0),NORENT,NOREUS.