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:

  • 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.