Format of an SMF type-29, subtype-2 record

JVM usage statistics are captured as type-29, subtype-2 records in z/OS System Management Facility (SMF). The SMF record consists of three main sections: the SMF header, the BPE header, and the section for JVM usage statistics.

The BPESMF29 macro contains the DSECTs for both the SMF type-29 and the BPE headers. The smf29bhs field in the SMF header contains the offset from the start of the SMF 29 record to the BPE header.

The DFSJSMF macro contains the DSECT for the JVM usage statistics. The smf29sts field in the SMF header contains the offset from the start of the SMF 29 record to the JVM usage statistics.

The following tables describe the fields for each section of the SMF 29, subtype-2 record.

Table 1. SMF type-29 header - BPESMF29 DSECT
Name Length Type Description
smf29len 2 binary Record length
smf29seg 2 binary Segment descriptor
smf29flg 1 binary System indicator flag:
  • x'80' – Reserved
  • x'40' – Subtype used
  • x'20' – Reserved
  • x'10' – MVS/SP version 4 and above
  • x'08' – MVS/SP version 3
  • x'04' – MVS/SP Version 2
  • x'02' – VS2
  • x'01' – Reserved
smf29rty 1 binary Record type (29 decimal or x'1D')
smf29tme 4 binary Time since midnight, in hundredths of a second, that the record was moved into the SMF buffer
smf29dte 4 packed Date (packed decimal) when the record was moved into the SMF buffer
smf29sid 4 EBCDIC System identification
smf29ssi 4 EBCDIC Subsystem identification
smf29sty 2 binary Record subtype. The subtype code for an SMF type-29, subtype-2 record is SMF29_STY_002.
smf29trn 2 binary Number of triplets in this record
* 2   Reserved
smf29bhs 4 binary Offset to BPE header from start of record
smf29bhl 2 binary Length of BPE header
smf29bhn 2 binary Number of BPE header
smf29sts 4 binary Offset to subtype specific section from start of record
smf29stl 2 binary Length of subtype specific section
smf29stn 2 binary Number of subtype specific section
Table 2. BPE header - BPESMF29_BPEHDR DSECT
Name Length Type Description
smf29bh_fieldFlags 4 binary Field flags
smf29bh_asType 4 EBCDIC Address space type that wrote this record
smf29bh_jobName 8 EBCDIC Job or started task name
smf29bh_asName 8 EBCDIC
  1. IMSID (or DBCTL RSENAME) for batch/ IMS control region-associated address spaces (CTL, DLI, DBRC, DEP)
  2. BPE address space “system name” for BPE-managed address spaces
smf29bh_crType 1 binary Associated control region type:
  • x'00' – Not a control-region address space
  • x'01' – TM/DB IMS
  • x'02' – DBCTL IMS
  • x'03' – DCCTL IMS
  • x'04' – FDBR region
smf29bh_flag1 1 binary Flag byte:
  • x'80' – IMS or BPE address space registered as VUE
  • x'40' – Record written by IMS dependent region or DBCTL/ODBA thread
  • x'20' – Record written by IMS batch region
  • x'10' – IMS using IRLM
  • x'08' – IMS using DBRC
  • x'04' – IMS using shared queues
  • x'02' – IMS using CSL
  • x'01' – Reserved
* 2   Reserved
smf29bh_asVersion 3 EBCDIC Address space version number (binary)
smf29bh_bpeVersion 3 EBCDIC BPE version number or 0 (binary)
smf29bh_asid 2 binary ASID of the address space that wrote this record
* 4   Reserved
smf29bh_startStck 8 EBCDIC
  1. STCK value of IMS batch or control region start for batch and control region-associated address spaces (CTL, DLI, DBRC, DEP)
  2. STCK value at address space start for BPE-based address spaces
smf29bh_stck 8 EBCDIC Current STCK when this record was built
Table 3 describes the self-defining "triplet" section for subtype-2 records at offset SMF29STS from the start of the record. These triplets define the offsets, lengths, and number of sections that follow-on in the record.
Table 3. Self-defining triplets
Name Length Type Description
SMF29SDS_TRIPLETS 2 binary Number of triplets
* 2 binary Reserved
SMF29SDS_OFFJRS 4 binary Offset to Java runtime section
SMF29SDS_LENJRS 2 binary Length of Java runtime section
SMF29SDS_NUMJRS 2 binary Number of Java runtime sections
SMF29SDS_OFFGCS 4 binary Offset to GC runtime section
SMF29SDS_LENGCS 2 binary Length of GC runtime section
SMF29SDS_NUMGCS 2 binary Number of GC runtime sections
* 4 binary Reserved
Table 4 describes the Java runtime section for subtype-2 records that contains the usage information for a JVM. A subtype-2 record can contain more than one Java runtime section, and the number of Java runtime sections in the record is defined by the SMF29SDS_NUMJRS field.
Table 4. Fields of the Java runtime section
Name Length Type Description
SMF29JRS_FDFLAGS 4 binary Field flags

The first flag byte denotes the version number of the JRS layout

* 4 binary Reserved
SMF29JRS_NAME 80 EBCDIC Formatted JVM name
SMF29JRS_STRTTME 8 binary Start time in milliseconds
SMF29JRS_UPTIME 8 binary Up time in milliseconds
SMF29JRS_GCPOLCY 40 EBCDIC Garbage collection policy
SMF29JRS_PEAKTHRD 4 binary Peak live thread count
SMF29JRS_CURRTHRD 4 binary Current number of live threads

Table 5 describes the garbage collector section for subtype-2 records that contains garbage collection information for a JVM. A subtype-2 record can contain more than one garbage collector section, and the number of garbage collector sections in the record is defined by the SMF29SDS_NUMGCS field.

Table 5. Fields of the garbage collector section
Name Length Type Description
SMF29GCS_FDFLAGS 4 binary Field flags

The first flag byte denotes the version number of the GCS layout.

* 4 binary Reserved
SMF29GCS_NAME 40 EBCDIC Garbage collector name
SMF29GCS_NUMCOLLS 8 binary Total number of collections
SMF29GCS_COLLTME 8 binary Approximate accumulated collection elapsed time
SMF29GCS_MEMFREED 8 binary Cumulative total amount of memory freed in bytes
SMF29GCS_NUMCOMPCS 8 binary Cumulative total number of compact that was performed
SMF29GCS_HEAPUSED 8 binary Amount of heap memory used in bytes