3.1.7.1.6 Close Queue
This event MUST be generated with the following argument:
iQueueDesc: The OpenQueueDescriptor (section 3.1.1.16) ADM element instance to be closed.
Return Value:
None.
The queue manager MUST perform the following actions to process this event:
If iQueueDesc.QueueReference is NULL:
Take no further action.
If iQueueDesc.Multiple is TRUE:
For each OpenQueueDescriptor ADM element instance in iQueueDesc.OpenQueueDescriptorCollection:
Generate a Close Queue event with iQueueDesc set to that OpenQueueDescriptor ADM element instance.
Take no further action.
For each WaitingMessageReadOperation (section 3.1.1.10) ADM element instance, referred to as readOp, in iQueueDesc.WaitingMessageReadOperationCollection:
If readOp.Tag does not equal NULL, generate a Cancel Waiting Message Read Request (section 3.1.7.1.17) event with the following arguments:
iQueue := iQueueDesc.QueueReference
iTag := readOp.Tag
iStatus := set to MQ_ERROR_OPERATION_CANCELLED (0xC00E0008).
For each Cursor (section 3.2) ADM element instance, referred to as cursorObj, in iQueueDesc.CursorCollection:
Generate a Close Cursor (section 3.1.7.1.2) event with the following argument:
iCursor := cursorObj
Remove the OpenQueueDescriptor ADM element instance referenced by iQueueDesc from iQueueDesc.QueueReference.OpenQueueDescriptorCollection.