3.1.5.2.1.2 Stream Messages

A stream message SRMPMessage (section 3.1.1.1.4) that is deleted from the OutgoingQueue with the <DeadLetter/> element present in the <Msmq> element MUST be moved to a transactional dead-letter queue if the <decision> element in the <commitmentReceipt> element contains the string "negative".

The dead-letter queue can be the system transactional dead-letter queue or an application-specified transactional queue. If SRMPMessage.ApplicationDeadletterQueue is set and matches the path name of a Queue object in QueueManager.QueueCollection and that Queue.Transactional attribute is equal to True, use that Queue object as the dead-letter queue; otherwise use QueueManager.SystemTransactionalDeadletterQueue as the dead-letter queue.

Move the message to the dead-letter queue by generating the Move Message event (see [MS-MQDMPR] section 3.1.7.1.16) with the following parameters:

  • iMessagePos: A reference to the MessagePosition in the OutgoingQueue from which the message was deleted.

  • iTargetQueue: The dead-letter queue chosen in the preceding step.

The system transactional dead-letter queue is system-generated and implementation-dependent.<27>