2. Creating configuration members for message processing

These procedures describe how to allocate and initialize the data sets that are required for message processing in a nonshared-queues environment.

You must create the configuration members for the following types of message processing:

  • Queue overflow protection processing
  • Committed messages processing
  • Uncommitted messages processing
  • Threshold processing

Conditions for these tasks:

  • These tasks are performed by the IQCSTRTJ sample job.
  • Perform these tasks regardless of the overflow protection approach you select.
  • If you are running nonshared queues, you must perform the configuration steps described in this section.
  • If you are running shared queues, you can skip this section.

Sample members for these tasks can be found in the sample library hlqual.SIQCSAMP.

Allocating data sets for message processing

Allocate three partitioned data sets for the following parameters:

  • Queue overflow protection data set - QSUN notification parameters
  • Commit data set - QSN committed message processing parameters
  • Uncommit data set - QSN uncommitted message processing parameters

You can customize sample JCL IQCSTRTJ in hlqual.SIQCSAMP to create these data sets and put the supplied sample members in the overflow protection data sets.

Member IQC#####, which is located in hlqual.SIQCSAMP, lists all samples, ordered by their functionality.

Specify DCB RECFM=FB and LRECL=80 (follow local standards).

Unless you specify otherwise, as described later in this section, the IMS Queue Control Facility assumes that there are separate data sets for each IMS on each MVS™ system.

If you allocate separate data sets for each IMS on each MVS system, the naming convention of these data sets is as follows:

Data set Naming convention Example
Queue overflow protection data set ovflhlq.mvsname.imsid.NOTPARMS IQC.MVS1.IMSA.NOTPARMS
Commit data set ovflhlq.mvsname.imsid.COMMIT IQC.MVS1.IMSA.COMMIT
Uncommit data set ovflhlq.mvsname.imsid.UNCOMMIT IQC.MVS1.IMSA.UNCOMMIT

where:

  • ovflhlq can be up to 25 characters long. The default is IQC.
  • mvsname is the MVS system name.
  • imsid is the name of the IMS control region.

If your MVS system is named such that the name would cause an invalid data set name to be created, the following rules apply:

  • If the MVS system name is less than 8 characters, an S will be added to the beginning portion of the data set name that contains the MVS system name.

    For example, if your MVS system name is 123456, and your IMSID is IMSA, the commit data set must be named IQC.S123456.IMSA.COMMIT.

  • If the MVS system name is 8 characters, an S will be added to the beginning of the first 7 characters of the MVS system name and an additional qualifier, beginning with an S followed by the 8th character, will be created.

    For example, if your MVS system name is 7654321@ and your IMSID is IMSB, the commit data set must be named IQC.S7654321.S@.IMSB.UNCOMMIT.

You can also define these three data sets in a way that they are shared among 1) all IMS subsystems on a given MVS system, 2) one IMS subsystem on all MVS systems, or 3) all IMS subsystems on all MVS systems. In these cases, the following naming rules apply:

  • If you want the IMS Queue Control Facility to share the data sets among all IMS subsystems, omit imsid as the middle-level qualifiers of the data sets names.
  • If you want the IMS Queue Control Facility to share the data sets among all MVS systems, omit mvsname as the middle-level qualifiers of the data sets names.

To share these data sets among all IMS subsystems on a given MVS system, specify their names as follows:

   ovflhlq.mvsname.NOTPARMS
   ovflhlq.mvsname.COMMIT
   ovflhlq.mvsname.UNCOMMIT

To share these data sets among a single IMS subsystem on all MVS systems, specify their names as follows:

   ovflhlq.imsid.NOTPARMS
   ovflhlq.imsid.COMMIT
   ovflhlq.imsid.UNCOMMIT

To share these data sets among all IMS subsystems on all MVS systems, specify their names as follows:

   ovflhlq.NOTPARMS
   ovflhlq.COMMIT
   ovflhlq.UNCOMMIT

To use these data sets, create and populate them with ovflhlq, as set in the REXX program for starting the TSO client (sample: hlq.SIQCEXEC(IQC31)), with or without mvsname and imsid as the middle-level qualifier, and suffix NOTPARMS, COMMIT, or UNCOMMIT.

If these data sets are to be shared among IMS subsystems or MVS systems, follow these additional steps:

  1. Start the TSO client. The IMS Queue Control Facility Main Menu panel is displayed.
  2. Select Preferences.
  3. Select option 1 (Change QCF session preferences).
  4. Select N for Include MVSNAME in DSNames, Include IMSID in DSNames, or both. The default is Y for either field.

Initializing the type 3 queue overflow protection data set

To initialize the queue overflow protection data set, use the sample control statement hlqual.SIQCSAMP(IQCQSUNP) (the IBM®-supplied default for the QSUN notification processing parameters) as a member in the NOTPARMS data set.

Descriptions for these samples can be found in member IQC#####.

You can use the QSN panels to modify the values in this member or to create new members.

Initializing the commit data set for types 2 and 3 queue overflow protection

To initialize the commit data set, use the sample FUNCTION control statement hlqual.SIQCSAMP(IQCQSNAB) as a member of the commit data set.

Descriptions for these samples can be found in member IQC#####.

These control statements will be input to the IMS Queue Control Facility client that was started by IMS when IMS message queue utilization goes from QSN area A to area B.

You can use the QSN panels to modify the values in this member or to create new members.

Initializing the uncommit data set for type 2 queue overflow protection

To initialize the uncommit data set, use the sample control statement hlqual.SIQCSAMP(IQCQSNUN) (the IBM-supplied default for the uncommitted message processing parameters) as a member in the uncommit data set.

Descriptions for these samples can be found in member IQC#####.

You can use the QSN panels to modify the values in this member or to create new members.

Threshold processing

By default, threshold processing is set to specify that no action is taken when the threshold is crossed.

For details on advanced threshold processing configuration, see Configuring threshold processing.