我是MSMQ的新手,并试图了解何时使用MessageQueueTransaction类。例如,创建一个简单的事务是否有任何值只是为了将消息放入MSMQ队列中?
using (MessageQueueTransaction t = new MessageQueueTransaction())
{
t.Begin();
Message m = new Message(myString, formatter);
queue.Send(m, t);
t.Commit();
}
我想不出任何东西,我很想把这个代码减少到....
Message m = new Message(myString, formatter);
queue.Send(m, t);
我输了什么吗?这有可能最终导致部分发送的损坏状态吗?
-MSMQnfused
答案 0 :(得分:3)
没关系,因为你只有一步
答案 1 :(得分:1)
由于您一次只发送一条消息,因此您无需担心维护消息排序或类似内容,因此您的代码很好。您可能仍希望在Receive()
端使用事务,以便在发生异常时消息返回队列。
但MSMQ还允许您简洁地表达此交易中只有一条消息:
queue.Send(m, MessageQueueTransactionType.Single);