
Creating a resource compression list
A resource compression list is a load module that contains a simple list of CICS TSQueue, CICS CHANNEL/CONTAINER, CICS ENQ/DEQ and Websphere MQ resource name keys. You can use the provided sample batch job to create the sample or your own resource compression list.
The purpose of the Resource compression list is to compress records in the CICS IA Dataspace to reduce memory usage or avoid the output of unnecessary data into the DB2 tables. Records that match the rules that are specified in this resource list are collected as just one record. If a match is found then the rest of the resource name is changed to contain "+" plus signs.
There are three versions of resource compression list format. The higher the version is, the more precision in the compression of records is available. Resource compression rules of different formats can not exist in a same list, they are incompatible with each other. For all versions, fields can not expand out of the 32 byte range. The end of the list is always indicated by a binary zero byte.
Compression rule format version 1
- The prefix length, range 1 - 32.
- The resource name prefix, which is a string of valid symbols.
TSQ name = DEPT10VT27SPA
altered to = DEPT10+++++++
ENQ name = FXTRAN
altered to = FX++++
MQ name = QUE0001
altered to = QUE++++
CIUXRCOM CSECT
CIUXRCOM AMODE 31
CIUXRCOM RMODE ANY
DC AL1(2),C'FX'
DC AL1(3),C'QUE'
DC AL1(6),C'DEPT10'
DC AL1(0) End of list
END CIUXRCOM
Compression rule format version 2
This format of the resource compression list rule allows a string to be specified at any fixed starting position within a resource name of a selected resource type. The string can therefore be a prefix, an infix, or a suffix. Such a string is called the key.
- CICS TS Command type :
- decimal 1 = MQ
- decimal 4 = CHANNELs/CONTAINERs
- decimal 7 = ENQ/DEQ
- decimal 10 = TS Queue
- decimal 50 = TS Queue, (affinity)
- Starting position of the key, range 1 - 32
- The key length, range 1 - 32
- The key, which is a string of valid symbols
TSQ name = T520ACCTBAL
altered to = ++++ACCT+++
TSQ name = SR-AREA01
altered to = SR+++++++
ENQ name = EURPAY
altered to = +++PAY
MQ Queue name = FRQUE001
altered to = ++QUE+++
CIUXRCOM CSECT
CIUXRCOM AMODE 31
CIUXRCOM RMODE ANY
DC AL1(7),AL1(4),AL1(4),C'PAY' ENQ/DEQ Example
DC AL1(10),AL1(5),AL1(5),C'ACCT' TSQ Example
DC AL1(10),AL1(1),AL1(2),C'SR' TSQ Example
DC AL1(1),AL1(3),AL1(3),C'QUE' MQ Example
DC AL1(0) End of list
END CIUXRCOM
Compression rule format version 3
- Preservation area
- Defines part of a resource name that is not filled with "+" pluses. This part can include the key.
- Compression trigger
- The amount of records at which the compression rule is applied and compression starts. If the amount of records is greater than one, such a rule is only applicable to looped CICS TS API calls, because this amount is associated with the combination of application, transaction, program, offset, and other key fields, depending on a resource type.
Before adding rules, you must first specify the eyecatcher so that CICS IA knows that version 3 of the resource compression list is used: DC CL8'PLIST V3'
- CICS TS Command type
- decimal 1 = MQ
- decimal 4 = CHANNELs/CONTAINERs
- decimal 7 = ENQ/DEQ
- decimal 10 = TS Queue
- Compression trigger, range 1 - 255
- Starting position of the preservation area, range 1 - 32
- The preservation area length, range 0 - 32
- Starting position of the key, range 1 - 32
- The key length, range 0 - 32
- The key which is a string of valid symbols
Initial conditions:
TSQ name = TSQ*****
where ***** increments by 1 from 00001 to 25000
at each CICS TS API call
Compression list:
CIUXRCOM CSECT
CIUXRCOM AMODE 31
CIUXRCOM RMODE ANY
DC CL8'PLIST V3'
DC AL1(10),AL1(3),AL1(4),AL1(1),AL1(1),AL1(3),C'TSQ'
DC AL1(0) End of list
END CIUXRCOM
CICS IA output:
TSQ name = TSQ00001
TSQ name = TSQ00002
TSQ name = TSQ0++++
TSQ name = TSQ10000
TSQ name = TSQ10001
TSQ name = TSQ1++++
TSQ name = TSQ20000
TSQ name = TSQ20001
TSQ name = TSQ2++++
Note 1:
DC AL1(10),AL1(3),AL1(4),AL1(1),AL1(1),AL1(3),C'TSQ'
is equivalent to
DC AL1(10),AL1(3),AL1(1),AL1(4),AL1(1),AL1(3),C'TSQ'
Note 2:
DC AL1(10),AL1(1),AL1(3),AL1(3),AL1(3),AL1(3),C'TSQ'
is equivalent to
DC AL1(10),AL1(3),AL1(3),C'TSQ' in rule format ver. 2
