2016-04-28 9 views
1

数日間、私はTransactionScopeに問題があります。エラーメッセージは次のとおりです。masstransitがメッセージを受信したときのTransactionAbortedException

MassTransit.Context.ServiceBusReceiveContext Consumer Exception Exposed System.Transactions.TransactionAbortedException: The transaction has aborted. 
    at System.Transactions.TransactionStatePromotedAborted.CreateAbortingClone(InternalTransaction tx) 
    at System.Transactions.DependentTransaction..ctor(IsolationLevel isoLevel, InternalTransaction internalTransaction, Boolean blocking) 
    at System.Transactions.Transaction.DependentClone(DependentCloneOption cloneOption) 
    at System.Transactions.TransactionScope.SetCurrent(Transaction newCurrent) 
    at System.Transactions.TransactionScope.PushScope() 
    at System.Transactions.TransactionScope..ctor(TransactionScopeOption scopeOption, TransactionOptions transactionOptions, TransactionScopeAsyncFlowOption asyncFlowOption) 
    at MassTransit.Transports.Msmq.TransactionalInboundMsmqTransport.ReceiveMessage(MessageEnumerator enumerator, TimeSpan timeout, Action`1 receiveAction) in d:\BuildAgent-03\work\aa063b4295dfc097\src\Transports\MassTransit.Transports.Msmq\TransactionalInboundMsmqTransport.cs:line 48 
    at MassTransit.Transports.Msmq.InboundMsmqTransport.<>c__DisplayClass2.<EnumerateQueue>b__0(MessageQueueConnection connection) in d:\BuildAgent-03\work\aa063b4295dfc097\src\Transports\MassTransit.Transports.Msmq\InboundMsmqTransport.cs:line 96 
    at MassTransit.Transports.DefaultConnectionPolicy.Execute(Action callback) in d:\BuildAgent-03\work\aa063b4295dfc097\src\MassTransit\Transports\DefaultConnectionPolicy.cs:line 42 
    at MassTransit.Transports.ConnectionPolicyChainImpl.Next(Action callback) in d:\BuildAgent-03\work\aa063b4295dfc097\src\MassTransit\Transports\ConnectionPolicyChainImpl.cs:line 50 
    at MassTransit.Transports.ConnectionHandlerImpl`1.Use(Action`1 callback) in d:\BuildAgent-03\work\aa063b4295dfc097\src\MassTransit\Transports\ConnectionHandlerImpl.cs:line 93 
    at MassTransit.Transports.Msmq.InboundMsmqTransport.EnumerateQueue(Func`2 receiver, TimeSpan timeout) in d:\BuildAgent-03\work\aa063b4295dfc097\src\Transports\MassTransit.Transports.Msmq\InboundMsmqTransport.cs:line 119 
    at MassTransit.Transports.Msmq.InboundMsmqTransport.Receive(Func`2 callback, TimeSpan timeout) in d:\BuildAgent-03\work\aa063b4295dfc097\src\Transports\MassTransit.Transports.Msmq\InboundMsmqTransport.cs:line 45 
    at MassTransit.Transports.Transport.Receive(Func`2 callback, TimeSpan timeout) in d:\BuildAgent-03\work\aa063b4295dfc097\src\MassTransit\Transports\Transport.cs:line 59 
    at MassTransit.Transports.Endpoint.Receive(Func`2 receiver, TimeSpan timeout) in d:\BuildAgent-03\work\aa063b4295dfc097\src\MassTransit\Transports\Endpoint.cs:line 351 
    at MassTransit.Context.ServiceBusReceiveContext.ReceiveFromEndpoint() in d:\BuildAgent-03\work\aa063b4295dfc097\src\MassTransit\Context\ServiceBusReceiveContext.cs:line 91 

キューは明白です。次回はトランザクションが成功すると思います。 これに関連するスタックトレースはありません。たぶんThreadPoolingはこれと何か関係がありますか?

このエラーは突然現れ始めました。数日があります。トランザクションの処理を担当するコードに変更はありませんでした。

私は助けが必要です。誰でも?

アップデート1:

この例外は、本番サーバー上でスローされますが、私は、ステージングサーバーまたはのdevのマシン上でそれを再現することはできません。

アップデート2:

すべてのトランザクションはローカルです。

答えて

0

問題はバグが多かったStructureMapです。アップグレード後はすべて正常に動作します。

0

これは、Microsoft DTC(分散トランザクションコーディネータ)の問題のように聞こえます。この場合、メッセージを読み取っているときにSQLサーバーへの接続を使用している可能性があり、その接続は分散トランザクションに参加できません。

MS DTCに関連する多くのトラブルシューティングガイドがありますので、DTCの操作、セキュリティ、および接続性を確認してください。アカウントの有効期限が切れているか、ファイアウォールルールが変更されているか、ノードのいずれかでサービスが開始されていない可能性があります。

+0

他のノードはありません.DTCは使用しません。データベースへの接続にはEnlist = falseステートメントがあります。 – dariol

+0

問題はバグのあったStructureMapにありました。アップグレード後はすべて正常に動作します。 – dariol

関連する問題