Setting up the SMF Real Time Interface
The z/OS SMF Real Time Interface allows programs to read SMF records from in-memory resources as they are written. It does not require exits or APF authorization, and access is controlled by RACF. Records are stored in a wrap-around buffer. The oldest records are discarded when the buffer is full. If a task reading the in-memory resource hasn't read a record before it is discarded, it will get a notification that it has missed data.
Up to 32 SMF in-memory resources can be defined to receive different combinations of records. Up to 8 different readers can connect to an in-memory resource.
EasySMF can share an in-memory resource if you already have resources defined to receive the required records.
The process to define in-memory resources is summarized here. Refer to the IBM SMF manuals for full details:
- https://www.ibm.com/docs/en/zos/3.2.0?topic=interface-defining-in-memory-resources
- https://www.ibm.com/docs/en/zos/3.2.0?topic=ssmfsp-statements-parameters-smfprmxx
Prerequisites
- SMF must be running in Logstream mode.
- Ensure you are not using DEFAULTLSNAME to define a default logstream for SMF records. If you send SMF records to an in-memory resource, they will not be written to the default logstream.
Define In-Memory resources
In memory resource names have the form:
IFASMF.name
RACF configuration
SAF resources in the FACILITY class are required to protect the in-memory resource. The SAF resource
name starts with IFA. followed by the resource name, e.g.
IFA.IFASMF.EASYSMF
Users that will read from the in-memory resource need READ access to the resource.
RDEFINE FACILITY IFA.IFASMF.EASYSMF OWNER(SECADMIN) UACC(NONE)
SETROPTS RACLIST(FACILITY) REFRESH
SMF Configuration
They are defined in the SMFPRMxx PARMLIB member. Syntax is similar to SMF logstream definitions, with an additional parameter for the buffer size.
RECORDING(LOGSTREAM)
INMEM(IFASMF.EASYSMF,RESSIZMAX(256M),TYPE(0,14,15,17,18,30,42,
61,62,64,65,66,70:79,90,92,119))