問題タブ [nservicebus3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
nservicebus - タイムアウトする NServiceBus 長時間実行プロセス
分散トランザクションがタイムアウトする前にリクエストの処理が終了しない場合、元のメッセージの処理が完了する前、または元のメッセージが処理される前に、同じメッセージが新しいスレッドで再処理される場合、実行時間の長いリクエストを持つメッセージ ハンドラーの問題に気付きました。エラーをスローします。メッセージは最終的にエラー キューに到達します。
問題を再現した方法は次のとおりです。
ローカル マシンの構成を更新して、トランザクションのデフォルト タイムアウトを 1 分に設定しました。
NSB メッセージ サービスをマルチスレッドに設定しました。
次に、ハンドラーでスレッドを 2 分間スリープさせました (以下のコード)。メッセージがワーカー トレッド A に届きます。1 分間のタイムアウトが発生すると、同じメッセージがワーカー スレッド B で処理され、ワーカー スレッド A は引き続き動作します。睡眠。ワーカー スレッド A が最終的に戻ってきて、「トランザクションに参加できません」というエラーが表示されます。その後、メッセージの処理を再開します。これは、メッセージが最終的にエラー キューに入るまで、両方のワーカー スレッドで続行されます。
これは既知の問題ですか、それとも、発生するこの種の集中的な再処理を回避するためにコードを設計する方法はありますか?
nservicebus - メッセージシリアライザーが構成されていません
nservicebus のバージョン 3 からバージョン 4 にアップグレードすると、次のエラー メッセージが表示される
「メッセージシリアライザーが構成されていません。」
スタックトレース:
c:\TeamCity\buildAgent\work\d4de8921a0aabf04\src\NServiceBus.Core\Unicast\UnicastBus.cs:line 866 の NServiceBus.Unicast.UnicastBus.ValidateConfiguration() で、c の NServiceBus.Unicast.UnicastBus.Start(Action startupAction) で:\TeamCity\buildAgent\work\d4de8921a0aabf04\src\NServiceBus.Core\Unicast\UnicastBus.cs: c:\TeamCity\buildAgent\work\d4de8921a0aabf04\src\NServiceBus の NServiceBus.Unicast.UnicastBus.Start() の行 739。 Core\Unicast\UnicastBus.cs:CycleMonkey.Inventory.CreateOrder.IT_OPS.CustomInit.Init() の 718 行目 d:\dev\backup\soa_cyclemonkey\Inventory\Inventory.CreateOrder\IT_OPS\CustomInit.cs:NServiceBus の 20 行目.Hosting.Configuration.ConfigManager.ConfigureCustomInitAndStartup() c:\TeamCity\buildAgent\work\d4de8921a0aabf04\src\NServiceBus.Core\Hosting\Configuration\ConfigurationManager.cs:NServiceBus の 43 行目。c:\TeamCity\buildAgent\work\d4de8921a0aabf04\src\NServiceBus.Core\Hosting\GenericHost.cs:line 126 の Hosting.GenericHost.PerformConfiguration() c:\TeamCity\buildAgent の NServiceBus.Hosting.GenericHost.Start() \work\d4de8921a0aabf04\src\NServiceBus.Core\Hosting\GenericHost.cs: c:\TeamCity\buildAgent\work\d4de8921a0aabf04\src\hosting\NServiceBus.Hosting の NServiceBus.Hosting.Windows.WindowsHost.Start() の 29 行目.Windows\WindowsHost.cs:NServiceBus.Hosting.Windows.Program.<>c_ の 56 行目\TeamCity\buildAgent\work\d4de8921a0aabf04\src\hosting\NServiceBus.Hosting.Windows\WindowsHost.cs: NServiceBus.Hosting.Windows.Program.<>c_ の 56 行目\TeamCity\buildAgent\work\d4de8921a0aabf04\src\hosting\NServiceBus.Hosting.Windows\WindowsHost.cs: NServiceBus.Hosting.Windows.Program.<>c_ の 56 行目DisplayClassd.b _5 (WindowsHost サービス) c:\TeamCity\buildAgent\work\d4de8921a0aabf04\src\hosting\NServiceBus.Hosting.Windows\Program.cs: 行 76 の Topshelf.Internal.ControllerDelegates 1.StartActionObject(Object obj) in c:\Projects\TopShelfForNSB\src\Topshelf\Internal\ControllerDelegates.cs:line 18
at Topshelf.Internal.IsolatedServiceControllerWrapper
1.<>c_ DisplayClass2.b _1(TService サービス) c:\Projects\TopShelfForNSB\src\Topshelf\Internal\IsolatedServiceControllerWrapper.cs:65 行1.<.cctor>b__1(ServiceController
目 c:\Projects\TopShelfForNSB\src\Topshelf\Internal\ServiceController の Topshelf.Internal.ServiceController 1 sc)。 cs: 35 行目 Magnum.StateMachine.LambdaAction 1.Execute(T instance, Event event, Object parameter) in :line 0
at Magnum.StateMachine.EventActionList
1.Execute(T stateMachine, Event event, Object parameter) in :line 0
アップグレードで何かが見落とされていませんか? 動作していたバージョン 3 のコード:
アップグレードに必要な提案された変更を含む同じコードのバージョン 4
asp.net - Web アプリケーションが NServiceBus イベントをサブスクライブしていない
現在 NServiceBus (v3) サービスにコマンドを送信する ASP.NET MVC アプリケーションがあります。
このサービスは、ユーザーにリアルタイムの通知を表示できるように、Web アプリケーション内でサブスクライブする必要があるイベントを発行します。
バスは現在、Web アプリケーション内で以下のように初期化されています。
web.config で次の構成を使用します。
しかし、Web アプリケーション内で作成したイベント ハンドラーが呼び出されず、Web アプリケーション用のキューが作成されず、ホストに送信されたサブスクリプション メッセージが表示されません。
何か不足していますか?
msmq - エラー キュー内のメッセージを分割する方法はありますか?
私たちの NServiceBus システムは今週遅れました (300,000 メッセージ)。
現在、1 秒あたり約 4 件のメッセージを処理しているため、追いつく時間が長すぎました。
処理を高速化するために、各 NServiceBus メッセージにオブジェクトを追加しました (メッセージあたり 20 個)。
通常、一緒に処理する必要がある場合にのみ、メッセージに複数のオブジェクトを入れます。
しかし、この変更により、パフォーマンスが大幅に向上しました (現在、1 秒あたり約 8 メッセージを処理しています)。これは、NServiceBus ワーカーとディストリビューターの間のハンドシェイクが少ないためだと考えています。
しかし今、この優れたソリューションには問題があることがわかりました。メッセージが失敗すると、20 個のオブジェクトすべてがエラー キューに向かいます。実際に問題があるのはそのうちの 1 つまたは 2 つだけです。
これらのメッセージを分割して再試行する方法が必要です。それを行うことができる ReturnToSourceQueue.exe のオプションはありますか?
c# - NServiceBus.Host.exe のタイムアウトとログの構成 - NServiceBusHost.exe.config で構成可能
NServiceBusHost.exe に問題があります。
現在、NServiceBusHost.exe を Windows サービスとして実行しており、次のようにタイムアウト例外が発生しています。
Microsoft サービス トレース ビューアの出力:
このタイムアウト例外の発生を回避することを考えています。HTTP ランタイムのタイムアウトを延長する必要があります。
.NET での HTTPRuntime 構成の実行タイムアウト (.NET 4.0 のデフォルトは 1:10 分) が NServiceBusHost.exe に適用されると考えるのが正しいかどうか、誰にもわかりますか?
さらに、NServiceBusHost.exe はトップシェルフ上に構築されていると思います。NServiceBusHost.exe の問題をログに記録するために log4net 構成を適用できるという考えは正しいですか?
前もって感謝します。
nservicebus - NServiceBus 4 と DTC
NServiceBus 3.3.3 システムをバージョン 4 にアップグレードすることを検討しています。
バージョン 4 が DTC なしで動作することを示していると思われる投稿をいくつか読みました。これは本当ですか?
基本的に、これは私がやろうとしていることです:
- 重複メッセージを処理できるようにハンドラーを変更する
- NServiceBus のバージョン 4 へのアップグレード
- データベースで DTC をオフにする
私が読んだことから、これを行うことができ、メッセージを失うことはありません。(私は医療会社で働いており、メッセージを失うことは、患者のデータを失うことを意味します (非常に悪い) .)
他に注意すべき点は、私のシステムがディストリビューターで実行され、ディストリビューターが複数のワーカーに仕事を与えることです。メッセージ スループットは膨大です (DTC を削除するとスループットが向上するのではないかと期待しています)。
補足として、MSMQ から RabbitMQ に切り替えた場合、これは何か違いますか?
nservicebus - NServiceBus パフォーマンス カウンターにインスタンスがありません
考えられることはすべて試しましたが、NServiceBus パフォーマンス カウンターを機能させることができません。
NServiceBus バージョン: 3.2.8
3.2.8 NServiceBus.Core アセンブリの NServiceBus.Unicast.Monitoring.PerformanceCounterInstaller を使用してパフォーマンス カウンターをインストールしましたが、パフォーマンス モニターに表示されますが、インスタンスが表示されません。
NServiceBus.Production および NServiceBus.PerformanceCounters プロファイルを使用して、昇格したコマンド プロンプトから NServiceBus.Host.exe を実行しようとしました。私は既にローカル管理者ですが、Performance Monitor Users セキュリティ グループに自分のユーザー アカウントを追加しました。サービスを介していくつかのメッセージを渡しました。
しかし、パフォーマンス カウンター インスタンスを取得できません...
誰か提案がありますか?
msmq - NServiceBus - メッセージが常に配信されるとは限らず、例外が発生するトランザクションに参加できません
本番環境で NServiceBus を使用しており、ログ ファイルに次のエラーが表示されます。
ターゲット マシンにキューが存在します (二重チェック)。ここで奇妙なことは、そのキューに送信されるメッセージごとに常に発生するわけではなく、時々発生することです (つまり、そのキューにメッセージが到着することを意味します)。
検索しても同様のケースは見つかりませんでした。
ここで何が欠けていますか?