2009-03-08 11 views
1

私は次のエラーを取得していますに関するヘルプ:は、Java JMS ResourceAllocationExceptionが

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

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

答えて

2

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

ご希望の場合は、完全なコードを投稿してください。実際にコードが何をしているのかは分かりませんので、もっと努力してください。言われていること

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

は、日によると、これは、このエラーの詳細です:

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. 
0

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

JMSプロバイダでキューごとに1つのコンシューマに制限されている設定がある可能性があります。私はActiveMQ for JMSを使用しましたが、単一のキューに複数のコンシューマを置くことができます。基本的に、コンシューマ間のリクエストの負荷を分散します。

関連する問題