Transactional Messaging

MSMQ can be used as a resource manager under the control of Microsoft Distributed Transaction Coordinator (MS DTC). Using MS DTC and MSMQ you can implement transaction-based applications, ensuring that message operations either succeed or fail in conjunction with other OLE-transaction-compliant applications and other MSMQ operations. For example, an MSMQ-based application can send a message and update a database in the same transaction. MS DTC ensures that both actions succeed, or neither are executed. These standard two-phase transactions are called coordinated transactions in the MSMQ SDK.

MSMQ also provides a small transaction coordinator that supports only one resource monitor: MSMQ. These single-phase transactions are simply called transactions in the MSMQ SDK. Because they do not have the overhead of two-phase commit transactions, these transactions are much faster than transactions coordinated by MS DTC.

Note Computers running Windows 95 and the MSMQ independent client software cannot send or receive transactional messages. However, computers running Windows 95 and the MSMQ dependent client software can send and receive transactional messages using the MS DTC proxy on the MSMQ dependent client. The MS DTC proxy is always installed on MSMQ dependent clients.

Using the MSMQ transaction parameter you can:

Transactional messages are standard MSMQ messages with an additional flag set. However, transactional messages can be sent only to transactional queues. Non-transactional messages cannot be sent to transactional queues, and transactional messages cannot be sent to non-transactional queues.

For more information on using transactions with your MSMQ-based applications, see the MSMQ SDK.


© 1997 by Microsoft Corporation. All rights reserved.