You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
And having a thread sleep for more than 10 seconds in the Receiver (server) handler, the message goes (after SLR) to the error queue.
So it seems the behavior is correct, just the wrong error if any is logged.
An exception is being thrown at the server side when it tries to reply to the sender.
The exception that is being generated from MSMQ is of type: TransactionEnlist: "Cannot enlist the transaction"
But then NServiceBus catch it, and erroneously (a bug), throw QueueNotFoundException exception instead with the innter exception set to the the thrown TransactionEnlist exception:
The following is the exception at this scenario:
System.Transactions.TransactionAbortedException occurred
Message=The transaction has aborted.
Source=System.Transactions
StackTrace:
at System.Transactions.TransactionStatePromotedAborted.BeginCommit(InternalTransaction tx, Boolean asyncCommit, AsyncCallback asyncCallback, Object asyncState)
at System.Transactions.CommittableTransaction.Commit()
at System.Transactions.TransactionScope.InternalDispose()
at System.Transactions.TransactionScope.Dispose()
at NServiceBus.Utils.TransactionWrapper.RunInTransaction(Action callback, IsolationLevel isolationLevel, TimeSpan transactionTimeout) in c:\Users\WorkUser\NServiceBus\src\utils\TransactionWrapper.cs:line 35
at NServiceBus.Unicast.Transport.Transactional.TransactionalTransport.Process() in c:\Users\WorkUser\NServiceBus\src\impl\unicast\transport\NServiceBus.Unicast.Transport.Transactional\TransactionalTransport.cs:line 229
InnerException: System.TimeoutException
Message=Transaction Timeout
InnerException:
The text was updated successfully, but these errors were encountered:
Mailing thread at yahoo groups:
http://tech.groups.yahoo.com/group/nservicebus/message/15077
My Findings:
Using FullDuplex sample, and shortening the timeout by:
And having a thread sleep for more than 10 seconds in the Receiver (server) handler, the message goes (after SLR) to the error queue.
So it seems the behavior is correct, just the wrong error if any is logged.
An exception is being thrown at the server side when it tries to reply to the sender.
The exception that is being generated from MSMQ is of type: TransactionEnlist: "Cannot enlist the transaction"
But then NServiceBus catch it, and erroneously (a bug), throw QueueNotFoundException exception instead with the innter exception set to the the thrown TransactionEnlist exception:
https://github.com/NServiceBus/NServiceBus/blob/master/src/impl/unicast/queuing/NServiceBus.Unicast.Queuing.Msmq/MsmqMessageSender.cs#L39
If there is no Reply from the server (and no auditing), then the exception is caught at another place and also not logged:
https://github.com/NServiceBus/NServiceBus/blob/develop/src/impl/unicast/transport/NServiceBus.Unicast.Transport.Transactional/TransactionalTransport.cs#L240
The following is the exception at this scenario:
System.Transactions.TransactionAbortedException occurred
Message=The transaction has aborted.
Source=System.Transactions
StackTrace:
at System.Transactions.TransactionStatePromotedAborted.BeginCommit(InternalTransaction tx, Boolean asyncCommit, AsyncCallback asyncCallback, Object asyncState)
at System.Transactions.CommittableTransaction.Commit()
at System.Transactions.TransactionScope.InternalDispose()
at System.Transactions.TransactionScope.Dispose()
at NServiceBus.Utils.TransactionWrapper.RunInTransaction(Action callback, IsolationLevel isolationLevel, TimeSpan transactionTimeout) in c:\Users\WorkUser\NServiceBus\src\utils\TransactionWrapper.cs:line 35
at NServiceBus.Unicast.Transport.Transactional.TransactionalTransport.Process() in c:\Users\WorkUser\NServiceBus\src\impl\unicast\transport\NServiceBus.Unicast.Transport.Transactional\TransactionalTransport.cs:line 229
InnerException: System.TimeoutException
Message=Transaction Timeout
InnerException:
The text was updated successfully, but these errors were encountered: