web-dev-qa-db-ja.com

MSMQジャーナルの制限を超えるとどうなりますか?

ジャーナルがMSMQプライベートキューで有効になっていて、ストレージ制限(100キロバイトなど)がある場合、その制限を超えるとどうなりますか?そして、あなたはこの振る舞いを設定できますか?

具体的には:

  • メッセージをキューに書き込むことはできますか?
  • それらのメッセージはジャーナルに書き込まれますか?
  • すでにジャーナルに書き込まれている古いメッセージはどうなりますか?

制限を設定することは、ジャーナルが成長してサーバーリソースを超えるリスクに対する解決策のひとつであると思われているようですが、制限を超えたときに何が起こるかを説明している人は誰もいません。

私たち自身の(非常に限られた)テストでは、メッセージがジャーナルに書き込まれなくなったように見えました。 (つまり、ジャーナルキューが制限に達すると、古いメッセージはジャーナルに残りましたが、今後のすべてのメッセージでは、ジャーナルは事実上オフになりました)。

6
Andrew M

はい、ジャーナリングは新しいジャーナルメッセージに対して機能しなくなります。ジャーナルメッセージは他のメッセージと同じように処理する必要があるため、蓄積を許可しないでください。

3
John Breakwell

メッセージ全体をジャーナルに移動するだけでなく、完全なジャーナルでもメッセージの受信をブロックできるという報告を見つけました。

https://social.msdn.Microsoft.com/Forums/ie/en-US/58e12d5a-acf3-4c67-a02a-9fa7528a5912/msmq-journal-full

ただし、MSMQがその時点で他のクォータに達したために発生した可能性があります。おそらく、ジャーナルだけでなく、すべてのキューのグローバルストレージ制限です。ジャーナルだけを限定するだけでは再現できませんでした。しかし、とにかくジャーナルを大きくしすぎないようにするのは良い考えです。

ところでジャーナルを定期的にバックアップして空にすることができる商用ツールを作成しました QueueMonitor

3
Dejan Grujić