Recovery processing in shared queues

Use the recovery logic to select and then process messages from the cold shared queue.

Recovery in a shared-queues environment is done by the IMS Queue Control Facility recovery logic. IMS Queue Control Facility recovery logic selects and then processes messages from the cold shared queue. You can use IMS Queue Control Facility recovery logic to perform the following tasks:

  • DELETE messages from the cold shared queue
  • UNLOCK or requeue messages for a later run
  • Write messages to a RECOVER data set
  • Report on the messages that RECOVER processed from the cold shared queue

The recover data set contains a copy of messages that can eventually be read into the shared queues by the load function logic. The data set could be used to subsequently perform stress, regression, or application testing.

Selection parameters

IMS Queue Control Facility recovery logic selects and removes messages from the cold shared queue based on your selection criteria. You specify the criteria with control statements that are read by IMS Queue Control Facility processing logic.

Selection criteria

You specify selection criteria to IMS Queue Control Facility recovery logic with FUNCTION, SELECT, INCLUDE, and EXCLUDE statements.

These statements define a subset of the message records to be selected from the cold shared queue. The FUNCTION statement is required. The other three statements are optional.

If no SELECT, INCLUDE, or EXCLUDE statements are present, all of the records from the cold shared queue are selected.

Message records can be selected based on the following criteria:

Specified in FUNCTION statement:
  • Queue type of COLD
Specified in SELECT statement:
  • Beginning date and time
  • Ending date and time
  • Log record type
  • Start number
  • System messages or no system messages
  • Conversational messages or no conversational messages
Specified in INCLUDE or EXCLUDE statement:
  • Destination with optional system ID
  • Destination type
  • Logical unit name
  • Logical unit name destination
  • Logical unit sidename
  • Logical unit source
  • Logical unit tpname
  • Message type
  • Source with optional system ID
  • Source type
  • TMember name
  • TMember destination
  • TMember source
  • TPipe name
  • Specific IMS ID
  • Specific IMS ID destination
  • Specific IMS ID source
  • Either the originating unit-of-work, or the processing IMS ID, or both
  • Either the originating unit-of-work, or the processing token, or both
  • VTAM® name

The FUNCTION statement specifies that the cold shared queue is to be processed. You can also use the FUNCTION statement to specify whether the recover data set is to be created using the READ or REPORTONLY options of the ACTION= keyword.

The FUNCTION statement is required to specify that the function is RECOVER.

The QUEUETYPE= keyword is optional as only the cold shared queue can be recovered.

The SELECT statement can also be used to specify whether the recover data set is to be created using the READ or REPORTONLY options of the ACTION= keyword. The SELECT statement specifies global criteria, the range of times, and the types of records to be selected by IMS Queue Control Facility recovery logic. Only one SELECT statement is allowed.

INCLUDE and EXCLUDE statements specify selection criteria about message sources and destinations. There can be any number of INCLUDE and EXCLUDE statements.

If any INCLUDE statements are present, a record must meet all criteria for at least one INCLUDE statement to be included in the recovery logic selections. Unspecified criteria are considered to be met.

A record that meets all of the criteria that is specified by an EXCLUDE statement is excluded by IMS Queue Control Facility recovery logic, even if the record meets all of the criteria that is specified by the SELECT statement and an INCLUDE statement. Unspecified criteria are considered to be met.

Selection processing

When given control by IMS Queue Control Facility control processing logic, recovery logic determines whether a recover data set is required; recovery logic does this by determining if ACTION=READ was specified, or defaulted to, on the FUNCTION or SELECT statement.

If the recover data set is required but not present, recovery logic issues a message and continues as if ACTION=REPORTONLY were specified.

IMS Queue Control Facility recover logic calls IMS requesting that a Common Queue Services (CQS) RECOVER function be performed on the cold shared queue.

Each record is processed by record processing logic that is specific for that record type.

The output logic calls the selection checker to determine if the record meets the selection criteria that was specified by the SELECT and INCLUDE statements.

  • If the record does not meet these selection criteria, the record is bypassed and remains on the cold queue.
  • If a record does meet these selection criteria, the output logic determines if the record meets the criteria for any EXCLUDE statement.
  • If the record meets the criteria for an EXCLUDE statement, the record is discarded and remains on the cold queue.

When end-of-data is signaled by IMS, IMS Queue Control Facility recovery logic produces the following information:

  • Reports on the number and type of messages that RECOVER selected on the cold shared queue
  • Statistics on the number and types of control statements processed by IMS Queue Control Facility control processing logic

IMS Queue Control Facility recovery logic then returns control to IMS Queue Control Facility control processing logic for clean up and normal termination.