web-dev-qa-db-ja.com

MSMQ:キューから受信するときに、「操作を実行するにはリソースが不足しています」というエラーが発生する原因は何ですか?

MSMQ:キューから受信するときに、「操作を実行するにはリソースが不足しています」というエラーが発生する原因は何ですか?

当時、キューには2,000メッセージしか保持されておらず、各メッセージのサイズは約5KBでした。

29
Jonathan Allen

ジョンブレイクウェルのブログから11の可能性があります。

  1. リモート読み取りのスレッドプールが使い果たされました(MSMQ 2.0のみ)。
  2. ローカルコールバックスレッドの数を超えています
  3. メッセージの量が、システムが処理できる量を超えました(MSMQ 2.0のみ)。
  4. ページプールカーネルメモリを使い果たしました。
  5. バイナリの不一致。
  6. メッセージのサイズが大きすぎます。
  7. マシン割り当て量を超えました。
  8. トランザクション外部キューを開くときのルーティングの問題(MSMQ 3.0のみ)
  9. ディスク容量の不足。
  10. モバイルデバイスでのストレージの問題
  11. クラスタリングが多すぎるMSMQリソース
  12. オープン接続が多すぎます
  13. コンピュータ名が15文字を超えていた
  14. 配信不能キュー内のメッセージが多すぎる

http://blogs.msdn.com/johnbreakwell/archive/2006/09/18/761035.aspx

エラー発生時に開いているキューのバージョンと、開いているキューへの(からの)接続数を確認します。それらのいずれかがエラーを引き起こしました。

29
Ragepotato

同じエラーメッセージが表示され、解決策は簡単でした。

さまざまなキューに大量のメッセージが置かれ、ストレージの制限に達しました。私は行きました:

  • サーバーマネージャー->機能

  • メッセージキューで右クリック

  • 選択したプロパティ

  • [全般]タブで、ストレージ制限のチェックを外しました

[〜#〜] msmq [〜#〜]を使用するサービスはre-startedになると通知され、エラーは発生しなくなりました。

35
Philip

送信キューに失敗したメッセージが多すぎます。システムキュー->配信不能メッセージを確認します。私はこのキューをクリアしましたが、再びうまくいきました。

17
Hugo Forte

ジャーナリングが有効になっている場合は、キューから削除されたすべてのメッセージのコピーが保存されるため、MSMQジャーナルの制限に達している可能性もあります。短期的な修正は、キューのジャーナルをパージすること、長期的にはジャーナルを無効にすることです。

2
kmoo01

上記のことを確認した後、同じエラーが発生しました。問題の原因はコンピューター名であることがわかりました。 15文字より長くなりましたが、短い文字に変更した後、問題は解決しました。

1
Jasper S.