Queue Manager Manual
Example: COBOL Application
B–12 46517 Tandem Computers Incorporated
MOVE LOW-VALUES TO ih-session-id.
MOVE 1 TO ih-uows-to-process.
MOVE SPACES TO wd-deq-data-field.
IF uow-deq-specific-deq = "Y"
MOVE uow-enq-queue-name TO uow-deq-queue-name
MOVE uow-enq-priority TO uow-deq-priority
MOVE rsp-enq-time-of-enq TO uow-deq-time-of-enq
MOVE rsp-enq-cpu-pin TO uow-deq-cpu-pin.
BEGIN-TRANSACTION.
SEND ih-ipc-hdr, uow-deq-deq-uow
TO "EMSERV"
REPLY
CODE 0, 1, 2 YIELDS
ih-ipc-hdr, rsp-deq-deq-rsp, wd-deq-data-field
CODE 3 YIELDS
ih-ipc-hdr
ON ERROR
MOVE TERMINATION-STATUS TO wc-error-status
MOVE TERMINATION-SUBSTATUS TO wc-error-substatus.
IF ih-pw-reply-code > 2
MOVE ih-ipc-retn-code TO wc-error-status
MOVE ih-ipc-retn-code-detail TO wc-error-substatus
ELSE IF ih-pw-reply-code > 0
MOVE rsp-deq-retn-code TO wc-error-status
MOVE rsp-deq-retn-code-detail TO wc-error-substatus.
IF wc-error-status = 0
END-TRANSACTION
ELSE
ABORT-TRANSACTION.
IF uow-deq-specific-deq = "Y"
IF uow-enq-queue-name NOT = rsp-deq-queue-name
OR uow-enq-priority NOT = rsp-deq-priority
OR rsp-enq-time-of-enq NOT = rsp-deq-time-of-enq
OR rsp-enq-cpu-pin NOT = rsp-deq-cpu-pin
MOVE 9999 TO wc-error-status, wc-error-substatus.
/
SEND-ENQ SECTION.
MOVE -2 TO ih-request-code.
MOVE "B00" TO ih-version-code.
MOVE LOW-VALUES TO ih-session-id.
MOVE 1 TO ih-uows-to-process.
MOVE wc-current-number TO wd-enq-number.
BEGIN-TRANSACTION.
SEND ih-ipc-hdr, uow-enq-enq-uow, wd-enq-data-field
TO "EMSERV"
REPLY
CODE 0, 1, 2 YIELDS
ih-ipc-hdr, rsp-enq-enq-rsp