Previous Page | Next Page

Common Messaging Interface Call Routines

CLOSEQUEUE



Closes a message queue.
Transports supported: MQSeries, MQSeries-C, MSMQ, Rendezvous, Rendezvous-CM

Syntax
Arguments
Example

Syntax

CALL CLOSEQUEUE(qid,rc <, attr>);

Arguments

qid

Numeric, input

Specifies the handle of a queue that is obtained from a previous OPENQUEUE function call.

rc

Numeric, output

Provides the return code from the CALL routine. If an error occurs, then the return code is nonzero. You can use the SAS function SYSMSG() in order to obtain a textual description of the return code.

attr

Character, input

Specifies a delete attribute. The following attributes are valid:

DELETE

Specifies that the queue is to be deleted after it successfully closes, but only if there are no messages on the queue. This attribute is supported with MQSeries only. It is not supported with MSMQ because there is no way to programmatically determine the depth of the queue. It is not supported with Rendezvous because Rendezvous handles this function internally.

DELETE_PURGE

Causes the queue to be deleted, even if the queue depth is greater than zero. This attribute is supported with MQSeries, MQSeries-C, MSMQ, and Rendezvous-CM. It is not supported with Rendezvous because Rendezvous handles this function internally. If you are using Rendezvous Certified Message Delivery, when you close a listener queue the default setting is for the sender to save messages for persistent messaging. If you do not want messages to be saved by the sender or do not want persistent messaging, specify the DELETE_PURGE attribute when you close the queue. Setting the DELETE_PURGE attribute is the same as setting the cancelAgreements argument on TIBRVCM_CANCEL(TRUE).


Example

The following example closes a queue:

length msg $ 200;
length qid rc 8;
rc=0;
call closequeue(qid, rc);
if rc ^= 0 then do;
  put 'CLOSEQUEUE: failed';
  msg = sysmsg();
  put msg;
end;
else put 'CLOSEQUEUE: succeeded';

Previous Page | Next Page | Top of Page