Perhaps a bit of background is in order, I'm a mainframe COBOL programmer with some limited knowledge of assembler. I'm doing a performance assessment for a company which does not have an SMF extract / reporting process. So I'm attemping to modify an assembler program to process the SMF 101 record. I'm using as a starting point this assembler program https://ndtdb2.blogspot.com/2017/10/assembler-to-select-only-101-records.html?m=1&fbclid=IwAR0niwHPfYPfS31ilC9yDicMV97NLnKJV0_wYJg3rcF75Xwu8gt0E1hNbeQ
The question I have is that if the DB2 SMF records have been written in a compressed format, is there a way to decompress them in an assembler program by perhaps calling a service module to decompress the record ?
having to run a stand alone utility to read in a file of compressed SMF 101 records and write out the uncompressed records would double the amount of time / resources needed to do the analysis
any help would be greatly appreciated.
Chuck Haatvedt
FLD: QWAS LEN(4) TYPE(BIN) DISP(0)
* SMF COMMON HEADER MAPPING MACRO FOR ACCOUNTING (SMF 101)
FLD: SM101LEN LEN(2) DISP(0) /*SM101 TOTAL LENGTH*/
FLD: SM101SGD LEN(2) DISP(2) /*ZZ BYTES*/
FLD: SM101FLG LEN(1) DISP(4) /*SYSTEM INDICATOR*/
FLD: SM101RTY LEN(1) TYPE(BU) DISP(5) /*RECORD TYPE X'65'*/
NOACC
FLD: SM101TME LEN(4) TYPE(B-SECS) DISP(6) DEC(2)
/*TIME SMF MOVED RECORD*/
FLD: SM101DTE TYPE(P-CYYDDD) DISP(10) /*DATE SMF MOVED RECORD*/
FLD: SM101SID LEN(4) DISP(14) /*SYSTEM ID (SID)*/
FLD: SM101SSI LEN(4) DISP(18) /*SUBSYSTEM ID*/
FLD: SM101STF LEN(2) DISP(22) /*SMF RECORD SUBTYPE*/
FLD: SM101SQ LEN(4) DISP(24)
COMP: SM101CMP = X'80' /*THIS RECORD IS COMPRESSED BY CSRCESRV*/
FLD: SM101BUF LEN(4) TYPE(BIN) DISP(24)
/*UNCOMPRESSED DATA LENGTH. THIS WILL BE*/
* 0 FOR UNCOMPRESSED RECORDS.
FLD: SM101END LEN(1) DISP(28) /*START OF THE SELF DEFINING SECTION*/
**********************************************************************