Skip navigation links

EasySMF:JE Home

EasySMF:JE 1.9.6 API

EasySMF:JE provides Java classes to work with z/OS SMF data.

See: Description

Packages 
Package Description
com.blackhillsoftware.smf
Classes common to all SMF record types - see SmfRecordReader to get started reading SMF data.
com.blackhillsoftware.smf.cics
Provides support for CICS SMF records - for usage details see Smf110Record.
com.blackhillsoftware.smf.cics.monitoring
Classes related to CICS monitoring record processing
com.blackhillsoftware.smf.cics.monitoring.fields
Classes to define fields in CICS Monitoring Performance Records
com.blackhillsoftware.smf.cics.statistics
Classes mapping CICS statistics sections
com.blackhillsoftware.smf.cics.statistics.cics420
Specializations of CICS statistics sections for CICS 4.2.0.
com.blackhillsoftware.smf.cics.statistics.cics510
Specializations of CICS statistics sections for CICS 5.1.0.
com.blackhillsoftware.smf.cics.statistics.cics530
Specializations of CICS statistics sections for CICS 5.3.0.
com.blackhillsoftware.smf.cics.statistics.cics540
Specializations of CICS statistics sections for CICS 5.4.0.
com.blackhillsoftware.smf.controlblock
Control block mappings not specific to a particular record type.
com.blackhillsoftware.smf.db2
Provides support for DB2 SMF records - for usage details see SmfDb2Record.
com.blackhillsoftware.smf.db2.section
Classes mapping DB2 sections
com.blackhillsoftware.smf.racf
Classes mapping RACF control blocks included in SMF records.
com.blackhillsoftware.smf.security
Map security token information included in various records
com.blackhillsoftware.smf.smf0
Mapping for SMF type 0 (IPL) record - for usage details see Smf0Record.
com.blackhillsoftware.smf.smf10
Mapping for SMF type 10 (Allocation Recovery) record - for usage details see Smf10Record.
com.blackhillsoftware.smf.smf11
Mapping for SMF type 11 (Vary Device Offline) record - for usage details see Smf11Record.
com.blackhillsoftware.smf.smf121
Mapping for SMF type 121 (Java Performance Statistics) record - for usage details see Smf121Record.
com.blackhillsoftware.smf.smf14
Mapping for SMF type 14 (Read dataset) record - for usage details see Smf14Record.
com.blackhillsoftware.smf.smf15
Mapping for SMF type 15 (Write Dataset) record - for usage details see Smf15Record.
com.blackhillsoftware.smf.smf16
Mapping for SMF type 16 (DFSORT Statistics) record - for usage details see Smf16Record.
com.blackhillsoftware.smf.smf17
Mapping for SMF type 17 (Scratch dataset) record - for usage details see Smf17Record.
com.blackhillsoftware.smf.smf18
Mapping for SMF type 18 (Rename Non-VSAM dataset) record - for usage details see Smf18Record.
com.blackhillsoftware.smf.smf19
Mapping for SMF type 19 (Direct Access Volume Information) record - for usage details see Smf19Record.
com.blackhillsoftware.smf.smf2
Mapping for SMF type 2 (Dump Header) record.
com.blackhillsoftware.smf.smf21
Mapping for SMF type 21 (Error Statistics by Volume) record - for usage details see Smf21Record.
com.blackhillsoftware.smf.smf23
Mapping for SMF type 23 (SMF Status) record - for usage details see Smf23Record.
com.blackhillsoftware.smf.smf3
Mapping for SMF type 3 (Dump Trailer) record.
com.blackhillsoftware.smf.smf30
Mapping for SMF type 30 (Common address space work) record - for usage details see Smf30Record.
com.blackhillsoftware.smf.smf41
Mapping for SMF type 41 (DIV and VLF Statistics) record - for usage details see Smf41Record.
com.blackhillsoftware.smf.smf42
Mapping for SMF type 42 (DFSMS Statistics) record - for usage details see Smf42Record.
com.blackhillsoftware.smf.smf42.subtype1  
com.blackhillsoftware.smf.smf42.subtype10  
com.blackhillsoftware.smf.smf42.subtype11  
com.blackhillsoftware.smf.smf42.subtype15  
com.blackhillsoftware.smf.smf42.subtype16  
com.blackhillsoftware.smf.smf42.subtype17  
com.blackhillsoftware.smf.smf42.subtype18  
com.blackhillsoftware.smf.smf42.subtype19  
com.blackhillsoftware.smf.smf42.subtype2  
com.blackhillsoftware.smf.smf42.subtype20  
com.blackhillsoftware.smf.smf42.subtype21  
com.blackhillsoftware.smf.smf42.subtype22  
com.blackhillsoftware.smf.smf42.subtype23  
com.blackhillsoftware.smf.smf42.subtype24  
com.blackhillsoftware.smf.smf42.subtype25  
com.blackhillsoftware.smf.smf42.subtype27  
com.blackhillsoftware.smf.smf42.subtype3  
com.blackhillsoftware.smf.smf42.subtype4  
com.blackhillsoftware.smf.smf42.subtype5  
com.blackhillsoftware.smf.smf42.subtype6  
com.blackhillsoftware.smf.smf42.subtype9  
com.blackhillsoftware.smf.smf6
Mapping for SMF type 6 (External Writer/JES2 Writer/JES3 Writer/PSF/IP Printway) record.
com.blackhillsoftware.smf.smf60
Mapping for SMF type 60 (VVDS update) record - for usage details see Smf60Record.
com.blackhillsoftware.smf.smf61
Mapping for SMF type 61 (ICF Define) record - for usage details see Smf61Record.
com.blackhillsoftware.smf.smf62
Mapping for SMF type 62 (VSAM Open) record - for usage details see Smf62Record.
com.blackhillsoftware.smf.smf64
Mapping for SMF type 64 (VSAM Status) record - for usage details see Smf64Record.
com.blackhillsoftware.smf.smf65
Mapping for SMF type 65 (ICF Delete) record - for usage details see Smf65Record.
com.blackhillsoftware.smf.smf66
Mapping for SMF type 66 (ICF Alter) record - for usage details see Smf66Record.
com.blackhillsoftware.smf.smf7
Mapping for SMF type 7 (Data Lost) record.
com.blackhillsoftware.smf.smf70
Mapping for SMF type 70 (RMF Processor Activity) record - for usage details see Smf70Record.
com.blackhillsoftware.smf.smf70.subtype1  
com.blackhillsoftware.smf.smf70.subtype2  
com.blackhillsoftware.smf.smf71
Mapping for SMF type 71 (RMF Paging) record - for usage details see Smf71Record.
com.blackhillsoftware.smf.smf71.subtype1  
com.blackhillsoftware.smf.smf72
Mapping for SMF type 72 (RMF Workload Activity) record - for usage details see Smf72Record.
com.blackhillsoftware.smf.smf72.subtype3  
com.blackhillsoftware.smf.smf72.subtype4  
com.blackhillsoftware.smf.smf72.subtype5  
com.blackhillsoftware.smf.smf73
Mapping for SMF type 73 (RMF Channel Path Activity) record - for usage details see Smf73Record.
com.blackhillsoftware.smf.smf73.subtype1  
com.blackhillsoftware.smf.smf74
Mapping for SMF type 74 (RMF Activity of Several Resources) record - for usage details see Smf74Record.
com.blackhillsoftware.smf.smf74.subtype1  
com.blackhillsoftware.smf.smf74.subtype10  
com.blackhillsoftware.smf.smf74.subtype2  
com.blackhillsoftware.smf.smf74.subtype3  
com.blackhillsoftware.smf.smf74.subtype4  
com.blackhillsoftware.smf.smf74.subtype5  
com.blackhillsoftware.smf.smf74.subtype6  
com.blackhillsoftware.smf.smf74.subtype7  
com.blackhillsoftware.smf.smf74.subtype8  
com.blackhillsoftware.smf.smf74.subtype9  
com.blackhillsoftware.smf.smf75
Mapping for SMF type 75 (RMF Page Dataset Activity) record - for usage details see Smf75Record.
com.blackhillsoftware.smf.smf75.subtype1  
com.blackhillsoftware.smf.smf76
Mapping for SMF type 76 (RMF Trace) record - for usage details see Smf76Record.
com.blackhillsoftware.smf.smf77
Mapping for SMF type 77 (RMF Enqueue Activity) record - for usage details see Smf77Record.
com.blackhillsoftware.smf.smf77.subtype1  
com.blackhillsoftware.smf.smf78
Mapping for SMF type 78 (RMF Virtual Storage and I/O Queuing) record - for usage details see Smf78Record.
com.blackhillsoftware.smf.smf78.subtype2  
com.blackhillsoftware.smf.smf78.subtype3  
com.blackhillsoftware.smf.smf79
Mapping for SMF type 79 (RMF Monitor II) record - for usage details see Smf79Record.
com.blackhillsoftware.smf.smf8
Mapping for SMF type 8 (I/O Configuration) record.
com.blackhillsoftware.smf.smf88
Mapping for SMF type 88 (System Logger) record - for usage details see Smf88Record.
com.blackhillsoftware.smf.smf89
Mapping for SMF type 89 (Usage Data) record - for usage details see Smf89Record.
com.blackhillsoftware.smf.smf9
Mapping for SMF type 9 (Vary Online) record.
com.blackhillsoftware.smf.smf92
Mapping for SMF type 92 (File System Activity) record - for usage details see Smf92Record.

EasySMF:JE provides Java classes to work with z/OS SMF data.

EasySMF:JE classes are designed to provide a consistent interface to SMF data across different SMF record types.

Using EasySMF:JE

Reading SMF records

Use the SmfRecordReader class to read SMF records from a DDNAME, an input file or a stream.

From a DDNAME:

try (SmfRecordReader reader = SmfRecordReader.fromDD("INPUT"))
{
    for (SmfRecord record : reader)
    {
       // process record
    }
}

or:

try (SmfRecordReader reader = SmfRecordReader.fromName("//DD:INPUT"))
{
    for (SmfRecord record : reader)
    {
       // process record
    }
}

From a filename:

try (SmfRecordReader reader = 
    SmfRecordReader.fromName("C:\\Users\\Andrew\\Documents\\mydata.smf"))
{
    for (SmfRecord record : reader)
    {
       // process record
    }
}

From a stream:

try (SmfRecordReader reader = 
    SmfRecordReader.fromStream(myInputStream))
{
    for (SmfRecord record : reader)
    {
       // process record
    }
}

Filtering by Record Type and Subtype

The SmfRecordReader include method can be used to specify which types (and subtypes) should be returned.

reader.include(30, 5); // Include type 30, subtype 5
reader
   .include(14)
   .include(15); // Include types 14 and 15

Processing records

Process records by iterating over the reader:

for (SmfRecord record : reader)
{
   // process record
}

or by using Java Streams:

long recordcount = reader.stream()
    .filter(r -> 
            r.smfTime().isAfter(LocalTime.of(9, 00)) 
         && r.smfTime().isBefore(LocalTime.of(17, 00)))
    .count();

Extracting record sections

SMF records are typically made up of multiple sections.

Methods are provided to extract the sections from the record. To retrieve a section, convert the SMF record to the specialized type and call the method.

reader.include(30);
for (SmfRecord record : reader)
{
   Smf30Record r30 = Smf30Record.from(record);
   IdentificationSection idSection = r30.identificationSection();
   List<ExcpSection> = r30.excpSections();
}

Typically, if a section is described by a SMF triplet (offset, length, count) then the sections will be returned in a List of the section type e.g. Smf30Record excpSections(). The list may be empty if there are no sections in this record i.e. the count is zero.

If it is documented that only one of the section type can occur, a method may return the single section e.g. Smf30Record identificationSection(). If the section might not be present that method will return null if the section does not exist e.g. Smf30Record completionSection().

In a few cases classes provide 2 methods, one that returns 1 section or null and another that returns a List of 1 or 0 items. The List allows you to iterate over the section (iterating 0 times if it is not present) instead of checking for null, which can give slightly neater code.

Data Conversion

The API aims to provide a consistent interface across different types and sections, and converts values to standard Java types for simple programming.

Dates and Times

Dates and times are converted to java.time classes. Java.time represents dates and times with a precision of 1 nanosecond, which is sufficient for most SMF fields.

The raw numeric value of date and time fields is also provided.

Numeric Values

String Values

Flags

Flag bits within a byte are converted to a boolean value indicating whether the bit is set.

Data Type Errors

If you discover a field with an incorrect data type, please report it as a problem instead of programming around it. Changing the data type later will require modifications to any existing programs that refer to the field.

Skip navigation links

EasySMF:JE Home

Copyright © 2020 Black Hill Software Pty Ltd. All rights reserved.