CQSSLxxx member of the IMS PROCLIB data set

Use the CQSSLxxx member of the IMS PROCLIB data set to define local CQS parameters that are related to one or more coupling facility structures.

Each CQS should point to a different CQSSLxxx member. CQS connects to each defined structure in the member. The structures defined in the CQSSLxxx member must also be defined in the CQSSGxxx member of the IMS PROCLIB data set.

Important: The CQSSLxxx member of the IMS PROCLIB data set applies to queue structures only, not resource structures. If you do not define queue structures, you do not need to define the CQSSLxxx member of the IMS PROCLIB data set.

Syntax

You can use the IMS Syntax Checker to modify this member of the IMS PROCLIB data set.

Read syntax diagramSkip visual syntax diagramSTRUCTURE(STRNAME= name,CHKPTDSN= name,SYSCHKPT= number,BATCHDEL=YES,BATCHDEL=NO,STRCHKPT= number)

Restrictions

The CQSSLxxx member of the IMS PROCLIB data set applies to queue structures only, not resource structures. If you do not define queue structures, you do not need to define the CQSSLxxx member of the IMS PROCLIB data set.

Usage

The following rules apply to the format of the CQSSLxxx member:
  • The execution member consists of one or more fixed-length character records. (The configuration data set can be of any LRECL greater than eight, but it must be of fixed-record format.)
  • The rightmost eight columns of each record are ignored and can be used for sequence numbers or any other notation. In the remaining columns, you code the keyword parameters. For example, if your record size is 80, you use columns 1 through 72 for your configuration data. You can use columns 73 through 80 for sequence numbers.
  • Keywords can contain leading and trailing blanks.
  • Each record can contain multiple keywords.
  • Commas or spaces delimit keywords.
  • A comment begins with an asterisk (*) or pound sign (#) in column one. You can include a comment anywhere within a statement by enclosing it between a slash-asterisk and an asterisk-slash pair.
    /*This is an example of a comment within a statement*/
  • Values coded in this member of the IMS PROCLIB data set are case sensitive.

If the STRUCTURE statement for an EMHQ structure is deleted from the CQSSLxxx member of the IMS PROCLIB data set, resources for the EMHQ structure and its associated CQS data sets are not allocated.

Parameters

Use the following keyword parameters to define a structure to CQS.

STRUCTURE()
The statement with which you define the structure definition parameters for the CQS. The structure definition parameters must be enclosed within parentheses. The STRUCTURE keyword must precede the left parenthesis.

Example: STRUCTURE (STRNAME=strname, CHKPTDSN=chkptdsn, ...)

STRNAME=
The required 1- to 16-character name of the primary coupling facility structure to which CQS connects.
The installation must have defined the structure in the coupling facility resource management (CFRM) administrative policy. The structure name must follow the naming rules of the CFRM. If the name has fewer than 16 characters, CQS pads the name with blanks. The valid characters are A-Z, 0-9, and the following special characters:
 $ @ # _
Names must be uppercase and start with an alphabetic character.

Restriction: Avoid using names that IBM® uses for its structures. Do not begin structure names with the letters A-I, or with the character string SYS. If you do name a structure beginning with the letters A-I or SYS, your name might conflict with an existing or future IBM-defined structure name.

CHKPTDSN=
The required 1- to 44-character data set name of the cataloged VSAM data set that is used for the checkpoint data set for the indicated structure. The data set is dynamically allocated by CQS during CQS initialization. Each structure defined in CQSSLxxx must have a unique CHKPTDSN.
SYSCHKPT=
Specifies the number of log records CQS writes between system checkpoints. This value can be from 200 to 2 147 483 647. Each CQS address space that is connected to a queue structure can specify a different system checkpoint log record count. This value is not shared between CQS address spaces.

This parameter has no default. If you do not specify a value, automatic system checkpoints are only taken during restart, normal shut down, and after a structure checkpoint.

BATCHDEL=YES|NO
YES

BATCHDEL=YES causes CQS to write CQS delete-by-lock-token log records in batches. This reduces the number of CQS log records written to the z/OS log stream. This can reduce both the CQS log volume and the time it takes to process CQSDEL calls. However, if there is a CQS structure failure, and if CQS also fails and is not able to write its final batch delete log record, there may be previously-deleted objects that are restored to the structure in locked status after the structure is rebuilt. For this situation, the status of any object that remains locked after CQS/client resync processing is in doubt. CQS will move these objects to the cold queue, where they must be manually examined and either unlocked or deleted.

The default is BATCHDEL=YES.

NO

BATCHDEL=NO requires CQS to write additional log records to the z/OS log stream. However, because a CQS delete log record is written for every locked object passed on a CQSDEL call, the status of deleted objects is not in doubt when a structure is rebuilt. CQS will not restore any previously-deleted objects to the rebuilt structure.

The BATCHDEL behavior is specific to the CQS structure for which it is coded, and to the CQS address space associated with the CQSSLxxx PROCLIB member:
  • You can have different values for BATCHDEL specified for different structures managed by the same CQS.
  • You can have different values for BATCHDEL specified for different CQSs managing the same structure.

A locked object is an object that has been read from a CQS structure by CQSREAD. CQS places the object on an internal CQS "locked queue" so that no other CQS client can access it while the client that has read the object processes it.

When a locked object is deleted from a queue structure via a CQSDEL request (CQSDEL by lock token), CQS constructs data that represents the object being deleted. When BATCHDEL=YES is specified or defaulted to, CQS places this data about a deleted object into a buffer in memory. This buffer can hold information for up to 100 deleted objects. When the buffer fills, CQS writes the full buffer to the structure's z/OS log stream. CQS can also write a partially-filled buffer at other times, such as at CQS system checkpoint and CQS termination. When BATCHDEL=NO is specified, CQS writes a separate delete log record to the z/OS log stream for each locked object passed on a CQSDEL call. No batching of delete records occurs.

STRCHKPT=
Specifies the number of log records that a CQS address space can write after a structure checkpoint before the next automatic structure checkpoint. When this number is reached, CQS automatically performs a structure checkpoint. Specify this value in the range of 1000 - 2147483647. This value is not shared among CQS address spaces. This parameter is optional. For different CQS address spaces that are connected to a queue structure, you can specify different STRCHKPT values. If you do not specify a value, automatic structure checkpoints are not performed by the CQS that is associated with the particular CQSSLxxx member, but you can still perform CQS structure checkpoints by using the /CQCHKPT SHAREDQ command or the CQSCHKPT FUNC=CHKPTSTR CQS client request.

Sample CQSSLxxx member of the IMS PROCLIB data set

The following is a sample CQSSLxxx member of the IMS PROCLIB data set.

**********************************************************************
* LOCAL STRUCTURE DEFINITION PROCLIB MEMBER                          *
**********************************************************************
*-------------------------------------------------*
* DEFINITION FOR IMS MESSAGE QUEUE STRUCTURE      *
*-------------------------------------------------*
STRUCTURE (     
 STRNAME=QMSGIMS01,  CHKPTDSN=CQSA.QMSG.IMS01.CHKPT, SYSCHKPT=1000000,
 STRCHKPT=2000000) 
*-------------------------------------------------*
* DEFINITION FOR IMS EMH QUEUE STRUCTURE          *
*-------------------------------------------------*
STRUCTURE (     
 STRNAME=QEMHIMS01,  CHKPTDSN=CQSA.QEMH.IMS01.CHKPT, SYSCHKPT=1000000,
 STRCHKPT=2000000)