2016-04-29 14 views
0

ホストがメッセージを処理しました。それは何ですか?メールアドレス、本文、件名を含むメッセージを取得します。 smtpを使用して電子メールを送信します。nservicebusホストはキューからメッセージを削除しません

私たちのクライアントのうちの1人では、キュー内に370個のメッセージが表示されています。メッセージはキューから出ていません。新しいメッセージのみが受信されます。

ログを確認しました。これは次のとおりです。

2016-04-28 17:35:10,243 [DAPROD01] [3] [] INFO : Failed to process message 
System.Net.Mail.SmtpException: The operation has timed out. 
    at System.Net.Mail.SmtpClient.Send(MailMessage message) 
    at EmailServiceHost.Utilities.EmailSender.Send(String recipient, String subject, String body) in e:\r-release\src\EmailServiceHost\Utilities\EmailSender.cs:line 24 
    at NServiceBus.Unicast.HandlerInvocationCache.Invoke(Object handler, Object message, Dictionary`2 dictionary) in :line 0 
    at NServiceBus.Pipeline.Behaviors.InvokeHandlersBehavior.DispatchMessageToHandlersBasedOnType(IBuilder builder, LogicalMessage toHandle, LoadedMessageHandlers loadedHandlers, BehaviorContext context) in :line 0 
    at NServiceBus.Pipeline.Behaviors.InvokeHandlersBehavior.Invoke(BehaviorContext context, Action next) in :line 0 
    at NServiceBus.Sagas.SagaPersistenceBehavior.Invoke(BehaviorContext context, Action next) in :line 0 
    at NServiceBus.Pipeline.Behaviors.LoadHandlersBehavior.Invoke(BehaviorContext context, Action next) in :line 0 
    at NServiceBus.Pipeline.Behaviors.CallbackInvocationBehavior.Invoke(BehaviorContext context, Action next) in :line 0 
    at NServiceBus.Pipeline.Behaviors.ApplyIncomingMessageMutatorsBehavior.Invoke(BehaviorContext context, Action next) in :line 0 
    at NServiceBus.Pipeline.Behaviors.ExtractLogicalMessagesBehavior.Invoke(BehaviorContext context, Action next) in :line 0 
    at NServiceBus.Pipeline.Behaviors.ApplyIncomingTransportMessageMutatorsBehavior.Invoke(BehaviorContext context, Action next) in :line 0 
    at NServiceBus.UnitOfWork.UnitOfWorkBehavior.Invoke(BehaviorContext context, Action next) in :line 0 
2016-04-28 17:35:10,602 [DAPROD01] [48] [] ERROR: Message has failed FLR and will be moved to the configured error q, ID=ec40ebe5-90a5-4014-be42-a5f500877d2a. 
2016-04-28 17:36:50,689 [DAPROD01] [48] [] INFO : Failed to process message 
System.Transactions.TransactionAbortedException: The transaction has aborted. 
    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.Transports.Msmq.MsmqDequeueStrategy.Action() in :line 0 

このように、最初のエラーにはsmtpクライアントのタイムアウトが含まれています。 次の200個のエラーは、メッセージを処理できませんでした。

メッセージがプライベートキューから抜けることはありません。

+0

メッセージがエラーキューに移動されているのか、またはそれらが入力キューに残っていますか? –

+0

私はトムと一緒です。メッセージが失敗し続ける場合は、エラーキューbij NServiceBusに移動する必要があります。それらが取り上げられ、再びキューに移動されるか、または再試行キューまたはエラーキューに移動される可能性があります。第1レベルの再試行、第2レベルの再試行、エラーおよび監査キューの設定は何ですか? –

+0

エラーキューに入りません。私はすべてのデフォルト設定(5 FLRとSLRなしを意味する)を得ました。メッセージはキューに留まります。 – user3329192

答えて

0

メッセージハンドラは、トランザクション内のメッセージを処理します。メッセージの処理中に例外を受け取ると、トランザクションはロールバックされ、メッセージはキューに戻されます。

メッセージハンドラがメールを送信できないようです。 smtpサーバが停止しているか、利用できないか、またはファイアウォールが接続を禁止しています。タイムアウト例外が発生すると、トランザクションはロールバックされます。

最終的にNServiceBusはエラーキューに失敗したメッセージを移動する必要があります。私はここでそれが起こらないか分からない。多分あなたは長く待っているだけではないでしょうか?ところで、私は5つのFLRと3つのSLRがデフォルト設定だと思う。

関連する問題