Data can be compressed on z/OS to decrease the time required to transfer data to the PC. Typical compression ratios are about 10:1, so transfer time could be reduced by around 90%. The compressed data can be loaded using EasySMF to transfer the data, or transferred separately and loaded from a file. Compressed data needs to be in Gzip format when using EasySMF to transfer the data. Zip format is also supported if the data is transferred outside of EasySMF and loaded using the Load from File function
Any product that produces Gzip format can be used to compress the data for loading via FTP into EasySMF. The compressed data must include the RDW in the SMF records.
A Java program to filter data by SMF record type and subtype and compress the data is supplied. Java compression seems to have similar performance to native gzip. Java will use a zEDC for compression if available.
Data compressed using the Java program can also be uncompressed with gzip and used with other software that processes SMF data.
The Java jar file is in the EasySMF samples folder at Start -> All Programs -> EasySMF -> Samples, file SMFCompress-v.r.m.jar. The jar file needs to be transferred using binary mode to a unix directory on z/OS.
The program needs to be run using the JZOS Batch Launcher (part of Java on z/OS) so it can access DD statements in the JCL.
Java source for the program is provided in Samples directory file Compress.java.
JCL
JCL is provided in Samples directory file JavaCompressJCL.txt.
The JCL is based on the JVMJCL80 and JVMPRC80 samples provided with JZOS.
1.Update the location of the jar file.
2.Update the STEPLIB if required for the JZOS load module.
3.Update the INPUT and OUTPUT DDs.
4.Update the list of SMF record types and subtypes, if required.
MAINARGS DD Statement
The MAINARGS DD statement provides the list of SMF record types and subtypes to include.
Specify either the record type to include all subtypes, or the record type and subtype separated by a period to include a specific subtype.
If you want all SMF record types, delete the MAINARGS DD statement.
//JOBNAME JOB CLASS=A,
// MSGCLASS=H,
// NOTIFY=&SYSUID
//*
//* ***** Edit with CAPS OFF and NUMBER OFF *****
//*
//* Run a Java program using JZOS Batch Launcher
//*
//G EXEC PGM=JVMLDM80,REGION=0M,
// PARM='/ -jar /u/myuserid/java/SMFCompress-2.0.0.jar'
//*
//* Location of JZOS module JVMLDM80
//STEPLIB DD DISP=SHR,DSN=JZOS.LINKLIBE
//*
//INPUT DD DSN=SMF.RECORDS,DISP=SHR
//OUTPUT DD DSN=SMF.RECORDS.GZ,
// DISP=(NEW,CATLG),
// RECFM=FB,LRECL=1024,
// SPACE=(CYL,(100,100),RLSE)
//*
//* Record types to include
//* Note: These are the record types currently used by EasySMF.
//* You may wish to include additional record types so that
//* you can go back and look at the history when new reports
//* are added. EasySMF can also export data for use by other
//* tools e.g. IBM upgrade planning tools so EasySMF can be
//* a useful repository for general SMF data storage.
//*
//MAINARGS DD *
0
2
3
7
14
15
17
18
30
42.6
42.9
42.10
42.20
42.21
42.24
42.25
60
61
62
64
65
66
70
71.1
72.3
74.1
75.1
92
113
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//STDOUT DD SYSOUT=*
//STDERR DD SYSOUT=*
//CEEDUMP DD SYSOUT=*
//ABNLIGNR DD DUMMY
//* Configure for JZOS: based on JVMJCL80/JVMPRC80
//*
//STDENV DD *
export JAVA_HOME=/usr/lpp/java/J8.0
export PATH=/bin:"${JAVA_HOME}"/bin
LIBPATH=/lib:/usr/lib:"${JAVA_HOME}"/bin
LIBPATH="$LIBPATH":"${JAVA_HOME}"/lib/s390
LIBPATH="$LIBPATH":"${JAVA_HOME}"/lib/s390/j9vm
LIBPATH="$LIBPATH":"${JAVA_HOME}"/bin/classic
export LIBPATH="$LIBPATH":
export CLASSPATH="."
IJO="-Xms16m -Xmx128m"
export IBM_JAVA_OPTIONS="$IJO "