【问题标题】:When to use MessageQueueTransaction for simple cases?何时在简单情况下使用 MessageQueueTransaction?
【发布时间】:2010-10-22 17:56:03
【问题描述】:

我是 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

【问题讨论】:

    标签: c# .net transactions msmq


    【解决方案1】:

    没关系,因为你只有一步

    【讨论】:

      【解决方案2】:

      由于您一次发送一条消息,因此您无需担心维护消息顺序或类似的事情,因此您的代码没问题。您可能仍希望在 Receive() 端使用事务,以便在发生异常时消息返回队列。

      但是MSMQ也允许你简洁地表达这个事务中只有一条消息:

      queue.Send(m, MessageQueueTransactionType.Single);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-05
        • 2012-02-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-30
        相关资源
        最近更新 更多