WebアプリケーションでNServiceBusを使用していますが、最近、接続状態にもかかわらずアウトバウンドキューに留まるだけで、決して離れないメッセージがいくつかあることがわかりました。それらを削除する最も簡単な解決策は、MSMQサービスを再起動することです。私がこれに遭遇した問題は、MSMQサービスを再起動または停止すると、CPUが100%にジャンプすることでした。
誰かがこれに出くわし、この高負荷を防ぐ方法を見つけましたか?サービスを停止しただけで停止するという考えは好きではありませんか?私が知っている1つの方法は、送信専用モードを使用することですが、これは理想的ではありません。
更新:global.asaxアプリケーション内で使用される構成コードの開始:
IBus bus = Configure
.With()
.DefaultBuilder()
.FileShareDataBus("c:\\storage")
.XmlSerializer()
.MsmqTransport()
.IsTransactional(false)
.PurgeOnStartup(false)
.UnicastBus()
.ImpersonateSender(false)
.CreateBus()
.Start(() => Configure.Instance.ForInstallationOn<Windows>().Install());