현재 throw하는 프로그램이 있습니다 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();
}
확인. TransactionContext.Current를 사용하여 현재 트랜잭션 컨텍스트를 가져올 수 있습니다. MessageQueueTransactionStatus가 Committed입니다. 그래서 나는 그것이 정리되지 않은 이유를 모른다. – Yin
버스 구성을 보여줄 수 있습니까? – user1121956
DoSomething()이 문제를 일으킬 수 있다고 말하는 경우 DoSomething()이 수행하는 작업은 무엇입니까? – user1121956