Transactional and Nontransactional Queues

Updated: June 25, 2007

Applies To: Windows Server 2008

A transactional queue is one that only contains transactional messages, which are messages sent within a transaction. The requirements for sending and receiving messages are based on the type of queue used (transactional or nontransactional) and the queue's location (local or remote).

When using transactions to send messages, the messages can be sent to any transactional queue regardless of where the queue is located, but only transactional queues can accept messages sent in the context of a transaction. In a similar way, nontransactional queues can only accept messages sent outside the context of a transaction. Note that only transactional messages are delivered with Exactly-Once In-Order Delivery (EOD) guarantees. For more information about transactional messaging, see Transactional Messaging.

Message Queuing natively supports transactional receives from remote queues. To utilize transactional receives from remote queues the queue that is being read from must be a transactional queue. Additionally, the Microsoft Distributed Transaction Coordinator (MSDTC) and Windows Firewall must be configured to permit transactions between remote computers. For more information see

Community Additions