Start of change

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.
Figure 1. Example of the compression rule format version 1
          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.

The rule format is the following:
  • 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
Figure 2. Example of the compression rule format version 2
          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

This format is an extension of the resource compression list rule format version 2, but without Affinity support. Two additional options are added:
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.
Note: If the compression trigger is greater than 1, then the union of the key and preservation area must be continuous and start from the first position in a resource name, otherwise there is a list format error. This restriction exists because of performance considerations.

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'

The rule format is the following:
  • 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
Figure 3. Example of the compression rule format version 3
          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     
End of change