MSMQ internal transactions provide better performance for transactions that only send or receive MSMQ messages.
Unlike MS DTC external transactions, MSMQ internal transactions cannot be passed to another resource manager. It is the cost of coordinating between several resource managers that make MSMQ internal transactions less expensive in terms of memory than MS DTC external transactions.
For information on the SDK components used to create an MSMQ internal transaction, see:
Note When sending a single message, MSMQ provides a single-message send operation that uses an MSMQ internal transaction. This mode of sending a message provides the best performance of all transaction types. When using this mode, MQBeginTransaction and Commit are implied.
For an example of an internal transaction, see: