To maintain compatibility we try to avoid breaking changes to the API, however there will be occasions where they are necessary. In most cases this will be caused by methods that return invalid data or have the wrong data type, so they are unlikely to be in general use.
To reduce the chance of being affected by breaking changes, if you find a field where the data type seems incorrect please open a support request to correct it rather than code around it. E.g. Dates and times that are LocalTime not ZonedDateTime (GMT).
Any breaking changes will be listed in the release notes.
Download:
- EasySMF:JE – Zip format – Jars and samples in zip format
- EasySMF:JE – tar.gz format – Jars and samples in tar.gz format
- EasySMF:JE – Pax archive – Jars and samples in pax archive format, for installation on z/OS
Current: Version 2.3.1
- Fix crash due to JZOS read after end of file when using Java streams
- Updates to record mappings
- Fix error building SMF 78 Mixed(1) data sections
Version 2.2.1
- Add support for DCOLLECT records.
Version 2.1.3
- Add reassembly information to RMF records
Version 2.1.2
- Specify LRECL when reading from subsystem.
Version 2.1.1
- Deprecate getFieldId() method in CICS DictionaryEntry class and replace with field() method because field() seems to be more obvious in usage e.g. DictionaryEntry.field()
Version 2.1.0
- Create SmfRecordReaderBuilder class to simplify createing a SmfRecordreader to read from a Logstream
- Create Top function to find the top n values by an arbitrary field for high volumes of data.
- Add a specific function to load CICS dictionaries to the Smf110Record.
Version 2.0.6
- Add function to read from SMF logstream
Version 2.0.5
- Fix a performance issue created affecting all SMF classes introduced by the toString() function.
Version 2.0.4
- Create toString() function for SMF records and sections to create a formatted version of the section fields.
- Add goal description to the SMF 72 service class periods
- Add more identification information to CICS transactions
- Improve the error description when there is an error processing CICS transactions i.e. the dictionary does not match the record.
Current: Version 2.0.3
- Sum of squares fields in RMF records were incorrectly converted to seconds. Fields are now converted to seconds-squared, using squared conversion factor.
- com.blackhillsoftware.smf.smf72.subtype5.GrsQScanStatisticsDataSection was not mapped.
Breaking changes
- Sum of squares fields renamed and/or changed conversion factor.
- Fields in com.blackhillsoftware.smf.smf72.subtype5.GrsQScanStatisticsDataSection changed to correct types.
Version 2.0.2
- Change SMF formatted dates to return null instead of 1899-12-31 when field values are all zero.
- Single character string fields with a value of zeros or ” ” return an empty string instead of a single space. This is consistent with the way multi character strings are trimmed.
- Remove several reserved fields from the SMF 30 record definition.
Version 2.0.1
- Fix a crash when SmfRecordReader includes() specific record types record types > 255 are encountered.
Version 2.0.0
Version 2.0.0 is a major update. Major changes include:
- Support for Java 9+ modules. Required Java version is still Java 8 or higher.
- Updated and simplified installation on z/OS.
Minor changes:
- SMF record updates
- Output GC statistics at the end of the program
- Support for EasySMF-JSON to output CICS transactions to JSON
- CICS transaction resource data sections clocks are available as CICS clock data type to keep the various clock components together
- Type 98 CICS and IMS records used incorrect index into Exceptional Jobs section.
- Performance improvement for String fields
Breaking changes
- CICS smfmntad field changed from ZonedDateTime to ZoneOffset
Version 1.11.1
- LsrPoolFileStatistics section incorrectly created as a LsrPoolStatistics section
Version 1.11.0
- Support CICS 6.1
- SMF type 90 support
- SMF record updates
- Dates return null if the field is all zeros, instead of a date based on the origin of the particular field.
Version 1.10.0
- Fix path section missing from SMF 92 subtype 1
- SMF type 98 support
- SMF record updates
- Deploy to JFrog repository to reference directly in Maven projects
Version 1.9.8
- CICS 5.6 support.
- SMF record updates.
- Correct the capitalization of some field names. The fields are still available under the old names, but they are marked as deprecated.
Version 1.9.7
- Correct an error in Peak4HRAJobs sample where it threw an exception with the message “This method is only supported when (smf70sty() == 1)” running on z/OS if SMF 70 subtype 2 records were present.
Version 1.9.6
- SMF record updates.
- Add fromName(…) method to SmfRecordWriter
- Additional documentation.
Version 1.9.5
- Support extended format BDWs (blocks greater than 32760) when reading RECFM=U streamed data.
Version 1.9.4
- Fix data types of fields smf30ers, smf30mem, smf42ctsRawValue and smf42ltsRawValue.
Breaking changes
- smf30ers data type changes from String to long
- smf30mem data type changes from String to long
- smf42ctsRawValue data type changes from String to BigInteger
- smf42ltsRawValue data type changes from String to BigInteger
String values for these fields are unlikely to have been useful.
Version 1.9.3
- Add definitions to refer to CICS fields by nickname.
- Performance improvements iterating over lists of sections.
- Correct offsets for fields SMF62DET and SMF62DKL
- Fix an error where encryption information was missing from the SMF 62 Statistics section.
- Correct fields SMF64DLR and SMD64DFS to use signed conversion instead of unsigned.
- Add from(SmfRecord) methods for creating specific SMF record types.
- SMF record updates.
Version 1.9.2
- CICS 5.5 support
- Correct a bug in CICS dictionary selection where the last dictionary seen was always used, instead of the last dictionary for the specific APPLID.
- SMF record updates
Version 1.9.1
- SMF Record updates
Version 1.9.0
- SMF record type 92 support.
- Generate a clearer error message when you try to read from a DDNAME on a non-z/OS system when JZOS is not available.
- SMF record updates.
Version 1.8.1
- SMF record updates.
Version 1.8.0
- z/OS 2.3 support.
- Remove dependency on JZOS jar for data conversion. JZOS data conversion will be used by default on z/OS (which should give better z/OS performance) but EasySMF will run without JZOS on other platforms.
- Add CICS Journal records and support for CICS 5.4.
Version 1.7.0
- Add support for CICS type 110 records
Version 1.6.1
- Fix sample scripts for Windows and Unix to work with modified installation directory structure
- Change Unix script to use Unix line endings instead of DOS/Windows line endings
Version 1.6.0
- Improve the installation process. Installation now takes place into a directory structure under ./easysmf-v-r-m/ to make it easier to install multiple version side by side.
- Add record type 16
- Add function to open a SMF file or dataset by name, not just using a preallocated DDNAME or from a stream.
- SMF record updates
Version 1.5.1
- Always reassemble records if required, not just when reading from RECFM=U blocks. In some circumstances it seems that data is deblocked but spanned records are not reassembled.
- Improve messages and diagnostic information for some common errors.
Version 1.5.0
- Add methods to type 30 records to return a single section or null for sections where it is documented that there will be zero or one instances. The older methods that returned a list containing zero or 1 entries still exist and are still fully supported.
- More extensive use of JZOS data conversion for possible performance improvements running on z/OS.
- SMF Record Updates
Version 1.4.0
- Update DB2 mapping for DB2 V12
- Add SMF record types 14, 15, 61, 62, 64, 65, 66, 88.
- Add support for reading from SMF data files downloaded using RECFM=U i.e. they include the Block Descriptor Word and spanned records need to be reassembled.
- Times reported as durations (e.g. CPU time) are also available as a double (floating point) value in seconds, for easier calculations and possibly better performance.
- Updates to SMF records.
Version 1.3.1
- Add a SmfRecordWriter class so that the API can be used for record filtering, sorting etc.
- Some invalid license keys were created in error. This version has changes to tolerate those keys.
Version 1.3.0
Breaking Changes
- SMF section constructors, which were documented as being for internal use only, are now marked private.
- Experimental DB2 support: Create a class to represent DB2 Accounting Token QWHCTOKN instead of using a BigInteger.
The token contains mixed text and binary data. Using a separate class allows toString() etc. to be tailored to be more appropriate for the content and should avoid other breaking changes for this field in the future.
Other Changes
Usability Improvements:
- Add support for DD statement pointing to key location
- Modify sample JCL procedures to allow user specified environment changes in a single step instead of using a preceding setup step.
- Messages from EasySMF are now issued using the SLF4J logging framework instead of writing to STDOUT.
This means that EasySMF messages are not mixed with program output written to STDOUT.
SLF4J allows the message destination to be tailored if required. The default destination as shipped is STDERR.
Version 1.2.1
Breaking Changes
- Some methods tested fields for values which were actually masks to define the bits used. The returned values were meaningless so the methods have been removed:
- smf70poi()
- smf73rv3()
- r744hsav()
- r745sos()
- r745sdcs()
- r745sdfw()
- r745sdps()
- r745sod()
- r745scol()
- r745svst()
- r745spda()
- r745dfrm()
- r745dsdv()
- r745dsfw()
- r745dsdp()
- r745dsod()
- r745dcol()
- r745dvst()
- r745dpdt()
- smf89lp1()
- smf89lp2()
- Some methods which returned binary data as a string, which is unlikely to be useful/correct, have been removed:
- r783hdat()
- r783cc()
- r783cd()
Other Changes
- Add classes to map SMF type 121 records
- Updates to existing SMF records to reflect IBM Changes
- Modify samples to demonstrate usage of Java 8 Streams
- Add sample report for type 41 VLF report
- Correct handling of some equate values
Version 1.2.0
- Add classes to map DB2 type 100 and 101 records
- Add classes to map SMF type 42 records
- Add classes to map SMF type 89 records
- Updates to existing SMF records to reflect IBM Changes
Version 1.1.0
Not released.
Version 1.0.0
- Initial Release