Enabling the creation of System Management Facility (SMF) records

Besides log files, Wazi Deploy supports the usage of the System Management Facility (SMF) for auditing and accounting purposes.

SMF type 122, subtype 4 records can be created for each deployment.

Enable SMF record collection in SMFPRMxx

System Management Facility (SMF) uses SYS1.PARMLIB(SMFPRMxx) to determine which record types and subtypes are to be collected. Define SMF=xx in the IEASYSxx parmlib member to specify which SMFPRMxx parmlib member is to be used during IPL.

Wazi Deploy creates SMF type 122, subtype 4, records.

Update the SYS(TYPE()) definition in SMFPRMxx to collect type 122 records.

Updated SMFPRMxx definitions can be activated dynamically (until the next IPL) with the following console command:
SET SMF=xx

For more information about the parmlib definitions, see MVS Initialization and Tuning Reference (SA22-7592). For more information about the sample console commands, see MVS System Commands (SA22-7627).

Authorize SMF record creation

The user ID that runs Wazi Deploy must be authorized to write an SMF record. To do so, grant the user READ access to the BPX.SMF profile in the FACILITY class of your security software. The following sample RACF commands define the profile and grant the required permit to user ID userid:
RDEFINE FACILITY BPX.SMF UACC(NONE)
PERMIT BPX.SMF CLASS(FACILITY) ID(userid) ACCESS(READ)
SETROPTS RACLIST(FACILITY) REFRESH
RLIST FACILITY BPX.SMF ALL

See the RACF Command Language Reference (SA22–7687) for more information about RACF commands.

SMF record layout

SMF record type 122 subtype 4 is created by Wazi Deploy during a deployment.

SMF record type 122 subtype 4 always has a header section that is followed by 1 or more data sections:

Header section

The header section for SMF record type 122, subtype 4, holds a standard SMF header followed by fields that reference the various data sections. Character strings are in EBCDIC, left aligned and padded with blanks to fill the field.

Table 1. SMF record type 122 subtype 4, header section
Offsets Type/Value Length Name Description
0 (x0) Structure 24 SMFHDR ** Standard SMF header **
0 (x0) Structure 4 SMFRDW ** SMF Record descriptor word **
0 (x0) Unsigned 2 SMFLEN Record length. This field and the next field (total of 4 bytes) form the record descriptor word (RDW), which is removed when the record is dumped.
2 (x2) Unsigned 2 SMFSEG Spanned segment descriptor. This field and the previous field (total of 4 bytes) form the record descriptor word (RDW), which is removed when the record is dumped.
4 (x4) Bitstring 1 SMFFLG SMF header flag byte.
  .1.. ....   SMSSTV (x40) Subtypes are being used.
5 (x5) Unsigned 1 SMFRTY Record type: 122 (x7A)
6 (x6) Unsigned 4 SMFTME Time since midnight, in hundredths of a second, that has elapsed since the record was moved into the SMF buffer (format: HHMMSSth).
10 (xA) Packed 4 SMFDAT Date when the record was moved into the SMF buffer. In the form of 0cyydddF, where c is 0 for 19xx and 1 for 20xx, yy is the current year (0-99), ddd is the current day (1-366), and F is the sign.
14 (xE) EBCDIC 4 SMFSID System identification (from the SMF SID parameter).
18 (x12) EBCDIC 4 SMFWID Subsystem ID.
22 (x16) Unsigned 2 SMFSTP Record subtype: 4 (x4)
24 (x18)        
24 (x18) Structure 20 SMF122t4h_Head ** SMF type 122 subtype 4 specific header **
24 (x18)   4   -- header description
24 (x18) Unsigned 2 SMF122t4h_Len SMF type 122 subtype 4 specific header length. It is set to the size of SMF122t4h_Head.
26 (x1A) Unsigned 2 SMF122t4h_Cnt Number of data section triplets. It is set to the number of data section identifier blocks that follow.
28 (x1C) Structure 8   -- triplet for data section 1 (execution)
28 (x1C) Unsigned 2 SMF122t4h_S1Len Section length. It is set to the size of SMF122t4s1_Section.
30 (x1E) Unsigned 2 SMF122t4h_S1Cnt Number of sections. This field documents how many times this section is present in the record (can be 0). If the number is greater than 1, then all sections are consecutive.
32 (x20) Unsigned 4 SMF122t4h_S1Offset Section offset. The offset, from the start of the record, of this section block.
36 (x24) Structure 8   -- triplet for data section 2 (future use)
36 (x24) Unsigned 2 SMF122t4h_S2Len Section length. It is set to the size of SMF122t4s2_Section.
38 (x26) Unsigned 2 SMF122t4h_S2Cnt Number of sections. This field documents how many times this section is present in the record (can be 0). If the number is greater than 1, then all sections are consecutive.
40 (x28) Unsigned 2 SMF122t4h_S2Offset Section offset. The offset, from the start of the record, of this section block.
44 (x2C)        

Data section 1, Deploy executed

Data section 1 for SMF record type 122, subtype 4, identifies Wazi Deploy itself and the user ID that is executing the deployment.

Table 2. SMF record type 122 subtype 4, data section 1
Offsets Type/Value Length Name Description
0 (x0) Structure 24 SMF122t4s1_Section ** section 1 (execution) **
0 (x0) EBCDIC 8 SMF122t4s1_User User ID
8 (x8) EBCDIC 11 SMF122t4s1_Name Product name
19 (x13) EBCDIC 5 SMF122t4s1_Version Product version