3.1.7.1.4 Delete Queue
This event MUST be generated with the following arguments:
iQueue: A reference to a Queue (section 3.1.1.2) ADM element instance to be deleted.
iSkipDirectory (Optional): A Boolean value that, when True, indicates that the queue manager MUST NOT update the directory. If this argument is not supplied, then it defaults to False.
Return Value:
rStatus: A status code that indicates success or failure.
The queue manager MUST perform the following actions to process this event:
For each iMessagePosition reference to the MessagePosition (section 3.1.1.11) ADM element instance in iQueue.MessagePositionList:
Generate the Message Position Deleted (section 3.1.7.2.1) event with the following arguments:
iQueue := iQueue
iPosition := iMessagePosition
iReason := NackQueueDeleted
For each iQueueDesc reference to the OpenQueueDescriptor (section 3.1.1.16) ADM element instance in iQueue.OpenQueueDescriptorCollection:
Set iQueueDesc.QueueReference to NULL.
Remove the Queue ADM element instance referenced by iQueue from LocalQueueManager.QueueCollection.
If the iQueue argument is of type PublicQueue and the iSkipDirectory argument is set to False:
Generate a Delete Directory Object (section 3.1.7.1.19) event with the following argument:
iQueue
If the Delete Directory Object event returns an rStatus that indicates failure:
Return the Delete Directory Object event rStatus as the rStatus for this event, and take no further action.
Return an rStatus that indicates success.