Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Administering message queues (DADM)

You can use DADM to administer two different types of message queues. These are:

  • UTM-controlled queues

    The asynchronous jobs created by a program unit are delivered to the recipient at the specified time. For messages to TACs, the associated program unit is started by openUTM.

  • Service-controlled queues

    In these queues, processing is controlled not by UTM but by the program unit itself.

    There are three types of service-controlled queues available:

    1. USER queues

      A permanent queue is available to every user of an openUTM application under the user’s user ID. The queue is accessible via the user ID. USER queues offer you the opportunity to send asynchronous messages to a UPIC user, for example.

    2. TAC queues

      Permanent queues with fixed names are created by generating TACs of the type 'Q'. In this way, queues can be implemented in remote UTM applications, for example, that are addressed by the local UTM application by means of an LTAC name.

      The dead letter queue KDCDLETQ is a TAC queue that is always available for backing up messages which could not be processed.

    3. Temporary queues

      Temporary queues can be created and deleted dynamically. The name of one of these queues can be created by the program unit or implicitly by openUTM. Temporary queues permit communication between two services, for example: A service sets up the queue and sends a message to the queue; another service reads the message and then deletes the queue.

      The maximum possible number of temporary queues is specified with the generation statement QUEUE.

      The KDCS calls QCRE and QREL are available to you to create and delete temporary queues. These calls are described in the openUTM manual „Programming Applications with KDCS”.

You can administer messages in a queue using DADM at the KDCS program interface. FPUT and DPUT allow you to create background jobs, output jobs and messages for service-controlled queues. The actual function performed in each case by DADM depends on the operation modifier which you pass to UTM in the kcom field of the parameter area. The following operation modifiers are available:

  • DADM RQ (read queue) for reading information about the messages in a message queue

  • DADM UI (user information) for reading user information about a message. User information is written by the job submitter and passed to the specified reception area when the message is created.

  • DADM CS (change sequence) changes the sequence of messages in a queue. This function enables you to move a message from any position in the queue to the front of the queue. This message is then processed before any of the other messages in the queue.

  • DADM DL (delete) and DADM DA (delete all) for deleting an individual message or all messages in a queue.

    When deleting job complexes with DADM DL, you can activate negative confirmation jobs. A job complex is an asynchronous job with a positive and/or negative confirmation job (see openUTM manual „Programming Applications with KDCS”, the MCOM call).

    When you delete messages using DADM DA, the messages are deleted with the following messages. A delete call like this is only executed:

    • in the case of UTM-controlled queues, when there is no job being processed for the specified destination

    • in the case of service-controlled queues, when no messages are currently being read

  • DADM MV (Move) and DADM MA (Move all) for moving one or all of the messages stored in the dead letter queue. The messages can be assigned to their original message queues or to any destination of the same type (asynchronous TAC / TAC queue, LPAP partner, OSI-LPAP partner).

To enable openUTM to process a DADM message, you must uniquely identify the message queue and the message in the queue.

Identifying the message queue

The message queues in openUTM are recipient-specific, i.e. either openUTM or the program unit itself administers a separate message queue for each recipient of jobs or messages. A UTM-controlled message queue to be administered is uniquely identified when you specify the name of the recipient when making a DADM call. In the case of UTM-controlled queues, you specify, for example:

  • in the case of output jobs, the name of the LTERM partner to which the terminal, the printer or the TS application is assigned

  • in the case of background jobs, the name of the asynchronous TAC to which the job is directed

In the case of service-controlled queues, the name and the type of the queue are required for the purpose of identification.

You pass the name of the recipient for DADM RQ/DL/DA in the kclt field of the KB parameter area and the type in the kcqtyp field.

Identifying messages in a message queue

For every message, openUTM establishes a separate identification, also known as a job ID or DPUT-ID. This enables you to administer each message individually.

After a message has been processed by the recipient, or after a message has been deleted by the administration function, the job ID is released and can immediately be reassigned to another message by UTM. For this reason, in the case of DADM UI/CS/DL calls requesting unique identification of the message to be administered, it is also necessary to enter the time the message was created. This is the only way of preventing the wrong message from being cancelled by DADM DL.

In the case of DADM calls, you must pass a job ID and the time the message was created in the KB parameter area. You can determine both items of data using DADM RQ and use them in subsequent DADM calls.

If the messages (FPUT and DPUT messages) buffered in the KDCFILE are transferred to a new KDCFILE with the UTM tool KDCUPD, they are then assigned new job IDs.