3.1.7.2.7 Time To Be Received Timer Expired

This event MUST be generated with the following argument:

Return Value:

  • None.

The queue manager MUST perform the following actions to process this event:

  • If iMessage.TransactionIdentifier is not NULL:

    • Set iMessage.MessagePositionReference.State to Locked.

    • Create a new TransactionalOperation (section 3.1.1.13) ADM element instance with the following attribute values:

      • OperationType := Dequeue.

      • MessagePositionReference := iMessage.MessagePositionReference.

      • DequeueReason := NackReceiveTimeout.

    • Find the Transaction (section 3.1.1.14) ADM element instance in QueueManager.TransactionCollection whose Identifier attribute equals iMessage.TransactionIdentifier. Add the new TransactionalOperation ADM element instance to the end of the TransactionalOperationCollection attribute of that Transaction ADM element instance.

  • Else:

    • Generate the Message Position Deleted (section 3.1.7.2.1) event with the following arguments:

      • iQueue := iMessage.MessagePositionReference.QueueReference

      • iPosition := iMessage.MessagePositionReference

      • iReason := NackReceiveTimeout