Programming Transactions

The following table lists the elements of MSMQ that require special attention when used as part of a transaction:

Element Description
MQCreateQueue Creates a transaction queue (see PROPID_Q_TRANSACTION).
MQSendMessage Sends transactional messages (see pTransaction parameter) to a transaction queue.
MQReceiveMessage Retrieves transactional messages (see pTransaction parameter) from a transaction queue.
PROPID_M_PRIORITY MSMQ sets the message priority of all transactional messages to 0.
PROPID_M_DELIVERY MSMQ sets the delivery property of all transaction messages to MQMSG_DELIVERY_RECOVERABLE.
PROPID_M_TIME_TO_BE_RECEIVED MSMQ sets the message's time-to-be-received property to the setting of the first transaction message sent.
PROPID_M_TIME_TO_REACH_QUEUE MSMQ sets the message's time-to-reach-queue property to the setting of the first transaction message sent.
PROPID_M_JOURNAL This property is disregarded when sending transaction messages. MSMQ automatically sends undelivered transaction messages to the transaction dead letter queue (DEADXACT) on the source computer.