2017-03-21 8 views
0

からタイムアウトを取得するために失敗しTimeoutPersisterReceiverの警告ので、私は前に気づいたことがない警告を大幅に育ったところ私は最近、私のNSBのログファイルに気づきました。NServiceBusがタイムアウトストレージ

2017年3月21日12:17:50.554がNServiceBus.Timeout.Hosting.Windows.TimeoutPersisterReceiverがタイムアウトストレージ System.NullReferenceExceptionからタイムアウトの取得に失敗しましたWARN:ラ・リファレンスD'オブジェn'est PASdéfinieàインスタンスデオブジェクト àNServiceBus.Timeout.Hosting.Windows.TimeoutPersisterReceiver.Poll(オブジェクトobj)C:¥BuildAgent¥work¥3206e2123f54fce4¥src¥NServiceBus.Core¥Timeout¥Hosting¥Windows¥TimeoutPersisterReceiver.cs:ligne 90 àSystem.Threading .Tasks.Task.Execute() 2017年3月21日12:17:50.560 INFO NServiceBus.CircuitBreakers.RepeatedFailuresOverTimeCircuitBreaker TimeoutStorageConnectivityための回路ブレーカが武装状態になり

であることができますので、この警告は、すべての秒を表示されます私のログファイルのサイズを想像してみてください。

私はNServiceBusログレベルを調整するとき、私は私のサービスにはいくつかの原因不明のクラッシュがあったので、私はこの警告に気づきました。私はこの警告により、しばらくしてからFatalExecutionEngineError例外を引き起こしてサービスがクラッシュすることが判明しました(下記スクリーンショット参照)。

FatalExecutionEngineError screenshot

私はNServiceBus 5.2.21を使用しています。

誰もがこの警告を取り除くのを助けることができますか?

+1

永続性データベースに接続タイムアウトの問題があるようですか?そうすれば、回路ブレーカーが腕をつけて蹴り上がり、エンドポイントをシャットダウンします。 –

答えて

0

古いバージョンのNServiceBus(5.2.14)を使用して問題を解決しました。このバージョンより上では、この問題が発生し、すべてがこのバージョンの下からうまく機能します。

私のテストによると、NServiceBusログ機能が無効になっているとクラッシュが発生しないようです。 NServiceBusでタイムアウトを使用していないので、ログが無効になっているとすべて正常に動作します。これは、スレッド間のconccurentアクセスの問題のように見えます。

これは古いバージョンで、NServiceBus現在のバージョンとの6.x(7.xの予定)で、それは固定されていないので、たぶん、このバグが見れたことがありません。

0

これはタイムアウト契約の急変によるものです。コアの最新バージョンを使用しているだけでなく、永続性も確認してください。