反正有调试/日志消息队列事务吗?

时间:2014-09-02 04:06:19

标签: rebus

我有一个程序当前抛出 MSMQ事务尚未启动。如果使用此事务发送时没有任何警告或异常,MSQM会将消息抛出到deadletter队列中!异常。我不确定我做错了什么,所以有没有调试/记录消息队列事务的当前状态?

基本上,我目前得到了:

DoSomething(); // may have problem here

using (var scope = new TransactionScope(TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted, Timeout = TransactionManager.DefaultTimeout }))
{
     // throws exception here, but I believe the above method does something wrong
     bus.Publish(new SomethingHappened(1, "test"));

     scope.Complete();
 }

1 个答案:

答案 0 :(得分:2)

我已经“成功”在我的机器上重现了这个问题,但我必须承认,我对如何解决这个问题一无所知。

似乎MSMQ以某种方式参与环境事务处理,即使我注意手动创建MsmqTransaction,我将其用于所有发送/接收操作。

我的信念是你曾指定MsmqTransactionMode.Auto让MSMQ自动登记,我绝对相信我不会。

我会更多地探讨一下,我甚至可能会看到我是否可以让MSMQ停止这样做,但我不能保证我可以解决你的问题。

感谢您报告,并感谢您彻底复制。