The QREL (queue release) call is used to delete a temporary queue dynamically.
All the messages in the queue are deleted, and the name and the table space of the queue are made available.
Services that wait for DGET messages of this queue are continued.
The format of the QREL call is described in detail in the following. You will find more information on the subject of message queuing in section "Message Queuing (asynchronous processing)".
Setting the KDCS parameter area (1st parameter)
The following table shows the entries required in the KDCS parameter area.
Function of the call | Entries in the KDCS parameter area | |||
---|---|---|---|---|
KCOP | KCOM | KCRN | KCMF/kcfn | |
Delete temporary queue | "QREL" | "RL" | Name of the queue | Blanks |
Setting the parameters | |
Field name in the KDCS parameter area | Contents |
"QREL" | |
"RL" | |
Name of the queue | |
Blanks |
KDCS call | |
KDCS parameter area |
C/C++ macro call | |
Parameters | |
KDCS_QRELRL | (kcrn) |
openUTM return information | |
---|---|
Field name in the KB return area | Inhalt |
Return code |
In the KDCS parameter area, make the following entries for the QREL call:
KCOP
In the KCOP field, enter the QREL operation code.
KCOM
In the KCOM field, enter the RL modifier.
KCRN
In the KCRN field, enter the name of the queue to be deleted.
KCMF/kcfn
The KCMF/kcfn field must be supplied with blanks.
For the KDCS call, specify:
1st parameter
The address of the KDCS parameter area.
Macro names
How to use macro calls for C/C++ is described in detail in the section "C/C++ macro interface".
openUTM returns:
KCRCCC
in the KCRCCC field the KDCS return code (see below).
KDCS return codes in the KCRCCC field for the QREL call
The following codes can be analyzed in the program:
000 | The operation was executed. |
40Z | There is no more space in the process-specific buffer for restart data. |
42Z | The value in KCOM is invalid. |
44Z | There is no temporary queue with the name specified in KCRN. |
45Z | KCMF/kcfn was not supplied with blanks. |
49Z | Unused fields (except KCMF) have a value other than binary zero. |
An additional return code can be found in the dump:
71Z | An INIT has not yet been called in the program unit run. |
Features of the QREL call
No administration authorization is required to delete a temporary queue.
After the QREL call, messages in the deleted queue can no longer be read or administered. New messages cannot be created for this queue.
After a QREL call and the successful conclusion of the transaction, a new temporary queue can be created with the same name.