EasySMF-JSON 1.4.3 API
Maven Dependency
Define the Black Hill Software repository and add the dependency to your POM:
<repositories>
<repository>
<id>black-hill-software</id>
<name>Black Hill Software Repository</name>
<url>https://repository.blackhillsoftware.com/public</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.blackhillsoftware.json</groupId>
<artifactId>easysmf-json</artifactId>
<version>1.4.3</version>
</dependency>
</dependencies>
General Usage
EasySmfGsonBuilder
configures a Gson instance to
convert EasySMF SMF records to JSON. Use the Gson.toJson(java.lang.Object)
method to
create the JSON output.
CICS SMF Data
Specialized classes are provided in packagecom.blackhillsoftware.json.cics
to process CICS transaction data.
CICS transactions produce a lot of SMF data, and need to be accessed using a dictionary. To simplify processing, classes are provided to build a summary of CICS transaction records.
CicsTransactionGroup
summarizes data from a
group of transactions. CicsTransactionGroupFactory
creates CicsTransactionGroups with a shared configuration e.g. including and excluding
specific fields.
SMF to JSON Command Line Interface
Smf2JsonCLI
provides a command line interface
for creating programs to convert SMF data to JSON.
Smf2JsonCLI
can read data from files or z/OS datasets,
generate the JSON and write it to a z/OS dataset, a file or stdout. It handles creating
and parsing the command line options to select the input source and output destination.
Other command line options allow you to select pretty printed JSON and multi-threaded processing.
Limiting record length on z/OS
JSON is usually generated as one long stream of data unless pretty printing is selected. This can be a problem if the output is directed to a dataset (not a file) on z/OS because datasets have a limited record length.To help avoid this limitation, the MultiLineArray
class can write a JSON array with newlines between each element, which can then
be written as separate records to a z/OS dataset using e.g.
TextRecordWriter
.
This means that the LRECL only
needs to be long enough for a single entry in the top level array.