是否存在调试/记录消息队列事务的问题



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

基本上,我目前得到:

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();
 }

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

MSMQ似乎以某种方式在环境事务中登记,尽管我手动创建了一个MsmqTransaction,用于所有发送/接收操作。

我的想法是,您必须为MSMQ指定MsmqTransactionMode.Auto以自动登记,我绝对相信我没有。

我会再找一些,我甚至可以看看我是否可以让MSMQ停止这样的行为,但我不能保证我可以解决你的问题。

不过,感谢您的报道,也感谢您的全面复制。

相关内容

  • 没有找到相关文章

最新更新