CQS startup procedure

Use the CQS startup procedure to dynamically override the settings in the CQS initialization parameters member of the IMS PROCLIB data set (CQSIPxxx).

You can start CQS as a started procedure or with JCL. The started procedure JCL for CQS can execute either the CQSINIT0 or the BPEINI00 program.

A sample startup procedure called CQS can be found in the IMS PROCLIB data set. When using CQSINIT0, there is no change to the sample procedure shown in Sample Common Queue Server startup procedure using CQSINIT0.

JCL

The JCL for the CQS procedure using CQSINIT0 is shown in Sample Common Queue Server startup procedure using CQSINIT0.

Note: Make sure to use a sufficient value for RGN=. Using a value that is too small can impact IMS availability and response times. It is suggested that you use an initial value of 300M, which you can adjust higher or lower after analyzing information provided in the JES2 step termination message IEF374I. That message includes the fields SMF3OURB and SMF30EUR, which are prefixed by, respectively, the labels VIRT and EXT.

When using BPEINI00, use the same procedure shown in Sample Common Queue Server startup procedure using CQSINIT0, but change the EXEC statement so that PGM=BPEINI00 is specified. You must also add the BPEINIT=CSQINI00 parameter, which identifies the CQS BPE initialization parameters module. A sample startup procedure using BPEINI00 is shown in Sample Common Queue Server startup procedure using BPEINI00.

Note: Make sure to use a sufficient value for RGN=. Using a value that is too small can impact IMS availability and response times. It is suggested that you use an initial value of 300M, which you can adjust higher or lower after analyzing information provided in the JES2 step termination message IEF374I. That message includes the fields SMF3OURB and SMF30EUR, which are prefixed by, respectively, the labels VIRT and EXT.

Usage

Figure 1 shows the general relationship between execution parameters and members of the IMS PROCLIB data set. In the figure, CQSSL001 and CQSSL002 contain structure definition parameters that are unique to each CQS. CQSSG00A contains the structure definition parameters that are shared by all CQS address spaces connected to the shared queues.

Figure 1. Specifying IMS and CQS parameters
This figure shows the relationship between the CQS execution parameters and members of the IMS PROCLIB data set for two CQSs.

Parameters

You can specify the following execution parameters on the CQS startup procedure. Read the descriptions of the parameters to determine whether you want to accept the system defaults or tailor the system to fit the requirements of your environment.

  • ARMRST=
  • BPECFG=
  • BPEINIT=CQSINI00
  • CQSGROUP=
  • CQSINIT=
  • SSN=
  • STRDEFG=
  • STRDEFL=

Execution data sets

CQS uses two types of data sets, the system checkpoint data set and the structure recovery data set. Both of these data sets must be VSAM entry-sequenced data sets (ESDSs). These data sets are user data sets (and are not known to SMP/E).

CQS system checkpoint data set

Each CQS address space that is connected to a queue structure maintains a system checkpoint data set for each structure pair. Neither CQS address spaces or queue structures share the system checkpoint data set. The CQS initialization process dynamically allocates the system checkpoint data set.

Use the MVS/DFP DEFINE CLUSTER functional command to define the data set to the installation. The DEFINE CLUSTER function command and its parameters are described in z/OS® DFSMS Access Method Services for Catalogs.

When you use the DEFINE CLUSTER functional command to define the system checkpoint data set, you must specify the following parameters:
NAME
Specifies the same name that you specify using the CHKPTDSN= parameter of the CQS local structure definition member of the IMS PROCLIB data set.
NONINDEXED
Specifies that the data set is to be an ESDS.
NONSPANNED
Specifies that the records must be contained in a single control interval.
SHAREOPTIONS
Specifies how a cluster can be shared among users. You must specify SHAREOPTIONS (2,3).
REUSE
Specifies that the cluster can be reused.
The following parameters are recommended when you specify the DEFINE CLUSTER functional command:
RECORDSIZE
Specifies the average and maximum length in bytes for the records in the cluster. Both the maximum and minimum length of the RECORDSIZE should be 7 bytes less than the CONTROLINTERVALSIZE.
CONTROLINTERVALSIZE
Specifies the size of the control interval for the cluster. The recommended CONTROLINTERVALSIZE is 512; whatever value you specify must be a multiple of 512.
An example of the system checkpoint data set is shown here:
     DEFINE CLUSTER                                            -
          (NAME (MSGQ.CHKPT)                                   -
          TRK(2,2) VOL (IMSQAV) NONINDEXED SHAREOPTIONS (2,3)  -
          RECSZ(505,505) REUSE CISZ (512))

CQS structure recovery data sets

CQS uses two structure recovery data sets per structure pair for its structure checkpoint processing.

Structure recovery data sets are not used for the resource structure.

When a structure checkpoint is requested, CQS dynamically allocates the structure recovery data sets. Structure checkpoint requests alternate between the two structure recovery data sets. During structure checkpoint processing all recoverable data objects on a structure are written to the structure recovery data sets. Thus, the size of each data set should be approximately the size of the primary structure plus the overflow structure to ensure that the entire structure fits in the data set.

Use the MVS/DFP DEFINE CLUSTER functional command to define the data set to the installation. The DEFINE CLUSTER function command and its parameters are described in z/OS DFSMS Access Method Services for Catalogs.

When you use the DEFINE CLUSTER functional command to define the structure recovery data set, you must specify the following parameters.
NAME
Specify the same name you specify in the CQS global structure definition member of the IMS PROCLIB data set using the SRSDSDSN1= and the SRSDSDSN2= parameters.
NONINDEXED
Specifies that the data set is to be an ESDS.
NONSPANNED
Specifies that the records must be contained in a single control interval.
SHAREOPTIONS
Specifies how a cluster can be shared among users. You must specify SHAREOPTIONS (2,3).
REUSE
Specifies that the cluster can be reused.
The following parameters are recommended when you specify the DEFINE CLUSTER functional command:
RECORDSIZE
Specifies the average and maximum length in bytes for the records in the cluster. Both the maximum and minimum length of the RECORDSIZE should be 7 bytes less than the CONTROLINTERVALSIZE.
CONTROLINTERVALSIZE
Specifies the size of the control interval for the cluster. The recommended control interval size is 32 768; whatever value you specify must be a multiple of 512.
An example of the structure recovery data set is shown here:
     DEFINE CLUSTER                                            -
         (NAME (MSGQ.SRDS1)                                    -
         TRK(45,5) VOL (DSHR03) NONINDEXED SHAREOPTIONS (2,3)  -
         RECSZ(32761,32761) REUSE  CISZ (32768)

Sample Common Queue Server startup procedure using CQSINIT0

//******************************************************************   
//*     CQS Procedure                                                  
//*                                                                    
//*                                                                    
//*     Parameters:                                                    
//*     BPECFG  - Name of BPE member                                   
//*     CQSINIT - Suffix for your CQSIPxxx member                      
//*     PARM1   - Other override parameters                            
//*               ARMRST   - ARM restart on CQS failure (Y/N)          
//*               CQSGROUP - XCF Group for sharing CQSs                
//*               SSN      - CQS subsystem name                        
//*               STRDEFG  - Suffix for CQSSGxxx member                
//*               STRDEFL  - Suffix for CQSSLxxx member                
//*                                                                    
//*               example:                                             
//*               PARM1='ARMRST=Y,SSN=CQSA,STRDEFG=001,STRDEFL=001'    
//*                                                                    
//****************************************************************** 
//*                                                                    
//*    Licensed Materials - Property of IBM                            
//*                                                                    
//*    Restricted Materials of IBM                                     
//*                                                                    
//*    5655-C56                                                        
//*                                                                    
//*    (C) Copyright IBM Corp. 1996,1998                               
//*                                                                    
//****************************************************************** 
//*                                                                    
//CQS      PROC RGN=300M,SOUT=A,                                      
//             RESLIB='IMS.SDFSRESL',                                  
//             BPECFG=BPECONFG,                                        
//             CQSINIT=,                                               
//             PARM1=                                                  
//*                                                                    
//CQSPROC  EXEC PGM=CQSINIT0,                                           
//             REGION=&RGN,                                             
// PARM='BPECFG=&BPECFG,CQSINIT=&CQSINIT,&PARM1'                        
//*                                                                     
//STEPLIB  DD  DSN=&RESLIB,DISP=SHR                                     
//         DD  DSN=&BPERES,DISP=SHR                                     
//         DD  DSN=SYS1.CSSLIB,DISP=SHR                                 
//PROCLIB  DD  DSN=IMS.PROCLIB,DISP=SHR                                 
//SYSPRINT DD  SYSOUT=&SOUT                                             
//SYSUDUMP DD  SYSOUT=&SOUT                                             
//*                                                                     

Sample Common Queue Server startup procedure using BPEINI00

//******************************************************************   
//*     CQS Procedure                                                  
//*                                                                    
//*                                                                    
//*     Parameters:                                                    
//*     BPECFG  - Name of BPE member                                   
//*     CQSINIT - Suffix for your CQSIPxxx member                      
//*     PARM1   - Other override parameters                            
//*               ARMRST   - ARM restart on CQS failure (Y/N)          
//*               CQSGROUP - XCF Group for sharing CQSs                
//*               SSN      - CQS subsystem name                        
//*               STRDEFG  - Suffix for CQSSGxxx member                
//*               STRDEFL  - Suffix for CQSSLxxx member                
//*                                                                    
//*               example:                                             
//*               PARM1='ARMRST=Y,SSN=CQSA,STRDEFG=001,STRDEFL=001'    
//*                                                                    
//****************************************************************** 
//*                                                                    
//*    Licensed Materials - Property of IBM                            
//*                                                                    
//*    Restricted Materials of IBM                                     
//*                                                                    
//*    5655-C56                                                        
//*                                                                    
//*    (C) Copyright IBM Corp. 1996,1998                               
//*                                                                    
//****************************************************************** 
//*                                                                    
//CQS      PROC RGN=300M,SOUT=A,                                      
//             RESLIB='IMS.SDFSRESL',                                  
//             BPECFG=BPECONFG,                                        
//             CQSINIT=,                                               
//             PARM1=                                                  
//*                                                                    
//CQSPROC  EXEC PGM=BPEINI00,                                           
//             REGION=&RGN,                                             
// PARM='BPECFG=&BPECFG,BPEINIT=CQSINI00,CQSINIT=&CQSINIT,&PARM1'       
//*                                                                     
//STEPLIB  DD  DSN=&RESLIB,DISP=SHR                                     
//         DD  DSN=&BPERES,DISP=SHR                                     
//         DD  DSN=SYS1.CSSLIB,DISP=SHR                                 
//PROCLIB  DD  DSN=IMS.PROCLIB,DISP=SHR                                 
//SYSPRINT DD  SYSOUT=&SOUT                                             
//SYSUDUMP DD  SYSOUT=&SOUT                                             
//*