3.1.5.1 Pending Request Cleanup Timer Event

When the Pending Request Cleanup Timer (section 3.1.2.2) expires, for the PendingRequestEntry (section 3.1.1.2) ADM element instance iPendingRequestEntry associated with this timer, the server MUST:

  • Find the OpenQueueDescriptor ADM element instance fOpenQueueDescriptor by comparing iPendingRequestEntry.QueueContextHandle with the Handle ADM attribute for all OpenQueueDescriptor ADM element instances maintained by the local QueueManager ADM element instance.

  • Find the corresponding Message ADM element instance fMessage by comparing iPendingRequestEntry.LookupIdentifier with the MessageReference.Identifier ADM attribute of all MessagePosition ADM element instances in fOpenQueueDescriptor.QueueReference.MessagePositionCollection.

  • Generate a Dequeue Message End ([MS-MQDMPR] section 3.1.7.1.12) event with the following inputs:

    • iQueueDesc := fOpenQueueDescriptor.

    • iMessage := fMessage.

    • iDeleteMessage := false.

  • Remove the PendingRequestEntry ADM element instance iPendingRequestEntry from the PendingRequestTable (section 3.1.1.3) ADM element, and cancel the timer.