1

次のエラーが表示されます。

javax.jms.ResourceAllocationException: [C4073]: A JMS destination limit was reached. Too many Subscribers/Receivers for Queue

セットアップは、1 つのプロバイダーと 2 つのコンシューマーが存在するように行われました。このエラーが発生する理由は、それがキューであり、1 つのプロバイダーと 1 つのコンシューマーしか持てないためですか?

4

2 に答える 2

2

JMS のキューはポイント ツー ポイント メカニズムです。複数のコンシューマがある場合は使用しないでください。そのためにトピックを使用する必要があります。

必要に応じて完全なコードを投稿してください。コードが何を行っているかが明確ではないため、さらに支援できるようにします。

JMS の基本概念 http://java.sun.com/products/jms/tutorial/1_3_1-fcs/doc/basics.html

そうは言っても、Sun によると、これはこのエラーの情報です。

C4073 

Message A JMS destination limit was reached. Too many Subscribers/Receivers for {0} : {1}

{0} is replaced with “Queue” or “Topic” {1} is replaced with the destination name.

Cause The client runtime was unable to create a message consumer for the specified domain and destination due to a broker resource constraint.
于 2009-03-08T23:49:22.220 に答える
0

実際には、複数のコンシューマーでキューを使用できます。トピックは、あなたが望むものではないかもしれません。トピックはパブリッシュ/サブスクライブ モデルとして機能し、各コンシューマーがメッセージのコピーを取得します。一方、キューでは、JMS プロバイダーはメッセージを 1 つのコンシューマーにのみディスパッチする必要があります。

JMS プロバイダーに構成設定があり、キューごとに 1 つのコンシューマーに制限されている可能性があります。私は ActiveMQ for JMS しか使用していませんが、1 つのキューに複数のコンシューマーを含めることができます。基本的には、コンシューマー間で要求の負荷を分散します。

于 2009-03-09T01:45:19.320 に答える