2017-09-29 27 views
0

いくつかの異なるサーバーの単一のインスタンスから多数のクライアントにメッセージを送信する必要のある一連のTomcat/Springアプリケーションがあります。各サーバーインスタンスには、独自の交換セットがあります。エクスチェンジはサーバによって宣言され、各クライアントによって生成され、それらのエクスチェンジにバインドされた匿名キューが宣言されます。私は匿名キューを使用しています。なぜなら、あらかじめ消費者の数がわからないからです。ファンアウト交換の性質を損なうことなく、複数のコンシューマを単一の名前付きキューにバインドすることはできません。クライアント側では、これらの匿名キューを再宣言または削除しようとする試みに関連して、ログに例外がたくさんあります。Spring-amqp:匿名の排他的キューを使用した場合の例外

もっと鮮明な絵を描くには:サービスAのExchangeA1、ExchangeA2、サービスBのExchangeB1、ExchangeB2という2つのサービス、サービスAとサービスBがあるとします。今では、これらの4つの交換機のそれぞれにバインドされたランダムな名前のキューを確立する単一のクライアントがあると仮定して、両方のサービスからのメッセージを監視できます。

メッセージは問題なくサーバ側からエクスチェンジに正常に送信されるため、問題が発生した場合は提供することができますが、サーバ側の設定を終了します。ここでは、クライアント側スプリング-config設定だ:

<rabbit:queue id="ClientQ1" /> 
<rabbit:queue id="ClientQ2" /> 

<!-- declare the exchanges so we can bind to them --> 
<rabbit:fanout-exchange id="ExchangeA1.id" name="ExchangeA1"> 
    <rabbit:bindings> 
     <rabbit:binding queue="ClientQ1"/> 
    </rabbit:bindings> 
</rabbit:fanout-exchange> 

<rabbit:fanout-exchange id="ExchangeA2.id" name="ExchangeA2"> 
    <rabbit:bindings> 
     <rabbit:binding queue="ClientQ2"/> 
    </rabbit:bindings> 
</rabbit:fanout-exchange> 

<rabbit:connection-factory id="rabbitConnectionFactory" <!-- this is a simple singleton bean that establishes an SSL connection to rabbitmq --> 
         connection-factory="rabbitMQConnectionFactoryBean" 
         publisher-confirms="true" 
         channel-cache-size="5" /> 

<rabbit:admin id="myRabbitAdmin" connection-factory="rabbitConnectionFactory"/> 

<rabbit:listener-container id="rabbitListenerContainer" 
          acknowledge="auto" 
          prefetch="1000" 
          connection-factory="rabbitConnectionFactory" 
          message-converter="EventMessageConverterBean" > 

    <rabbit:listener ref="Q1ListenerBean" 
        admin="myRabbitAdmin" 
        method="processEvent" 
        queue-names="#{ClientQ1.name}" /> 

    <rabbit:listener ref="Q2ListenerBean" 
        admin="myRabbitAdmin" 
        method="processEvent" 
        queue-names="#{ClientQ2.name}" /> 

</rabbit:listener-container> 

、このクライアントのいくつかの他の依存関係では、同じ構成は、基本的にExchangeBの(1,2)へのバインディングのために繰り返されることを想像してみてください。起動時に

、私はこのパターン、次の例外の負荷を見ている:/すべてのキューを再宣言しようとしている、:(954)

ERROR - SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(1158) | Consumer received fatal exception on startup 
org.springframework.amqp.rabbit.listener.QueuesNotAvailableException: Cannot prepare queue for listener. Either the queue doesn't exist or the broker will not allow us to use it. 
at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.start(BlockingQueueConsumer.java:481) 
at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1083) 
at java.lang.Thread.run(Thread.java:748) 
Caused by: org.springframework.amqp.rabbit.listener.BlockingQueueConsumer$DeclarationException: Failed to declare queue(s):[e4d2b49c-140f-4893-a764-4c84f945d482] 
at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.attemptPassiveDeclarations(BlockingQueueConsumer.java:554) 
at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.start(BlockingQueueConsumer.java:453) 
... 2 more 
Caused by: java.io.IOException 
at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:106) 
at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:102) 
at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:124) 
at com.rabbitmq.client.impl.ChannelN.queueDeclarePassive(ChannelN.java:801) 
at com.rabbitmq.client.impl.ChannelN.queueDeclarePassive(ChannelN.java:61) 
at sun.reflect.GeneratedMethodAccessor56.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
at java.lang.reflect.Method.invoke(Method.java:498) 
at org.springframework.amqp.rabbit.connection.CachingConnectionFactory$CachedChannelInvocationHandler.invoke(CachingConnectionFactory.java:666) 
at com.sun.proxy.$Proxy114.queueDeclarePassive(Unknown Source) 
at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.attemptPassiveDeclarations(BlockingQueueConsumer.java:533) 
... 3 more 
Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=405, reply-text=RESOURCE_LOCKED - cannot obtain exclusive access to locked queue 'e4d2b49c-140f-4893-a764-4c84f945d482' in vhost '/', class-id=50, method-id=10) 
at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:67) 
at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:33) 
at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:343) 
at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:216) 
at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:118) 
... 11 more 

私のデバッグがSimpleMessageListenerContainerでredeclareElementsIfNecessary()メソッドに私をリードしています見出し/綴じが欠けている場合。これは、rabbitmqが排他的なキューの再割り当てを許可しないために失敗します。 (または私が思う)

Spring AMQP v1.4.2 - Rabbit reconnection issue on network failureこれは接線と関連していますが、解決策は私の問題には適用されません。匿名のキューは本質的に排他的であり、私は匿名のキューを使用する必要があるので、私はロックとハードな場所の間にくっついているようです。私の質問は以下の通りです:

  1. 私はリスナーの設定が間違っていますか?この問題を緩和する方法がいくつかありますが、設定を変更できますか?
  2. redeclareElementsIfNecessaryが呼び出されるのはなぜですか?問題のキューはすべて、最初の宣言の後に存在するはずです。
  3. これらのエラーは本当に無害ですか?もしそうなら、どうすれば私のログに表示されるすべての例外を避けるためにそれらを傍受することができますか?

いずれの情報もあります。

春、AMQP 1.4.6

RabbitMQの3.6.10

アップデート1 ウサギに関連するいくつかの関連するバネ - デバッグログ出力:管理者:

17:22:14,783 DEBUG RabbitAdmin:382 - Initializing declarations 
17:22:14,784 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'serviceAExchange1' 
17:22:14,784 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'serviceAExchange2' 
17:22:14,784 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'serviceBExchange1' 
17:22:14,784 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'serviceBExchange2' 
17:22:14,784 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'org.springframework.amqp.core.TopicExchange#0' 
17:22:14,784 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'org.springframework.amqp.core.TopicExchange#1' 
17:22:14,784 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'org.springframework.amqp.core.TopicExchange#2' 
17:22:14,784 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'ServiceAQueue1' 
17:22:14,784 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'ServiceAQueue2' 
17:22:14,784 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'ServiceBQueue1' 
17:22:14,784 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'ServiceBQueue2' 
17:22:14,784 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'consumer.index.amqp.consumerQueue' 
17:22:14,785 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'org.springframework.amqp.rabbit.config.BindingFactoryBean#0' 
17:22:14,785 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'org.springframework.amqp.rabbit.config.BindingFactoryBean#1' 
17:22:14,786 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'org.springframework.amqp.rabbit.config.BindingFactoryBean#2' 
17:22:14,786 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'org.springframework.amqp.rabbit.config.BindingFactoryBean#3' 
17:22:14,786 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'org.springframework.amqp.rabbit.config.BindingFactoryBean#4' 
17:22:14,786 INFO RabbitAdmin:399 - Auto-declaring a non-durable, auto-delete, or exclusive Queue (07475112-7be0-4c8d-b6e5-3279e81a1aff) durable:false, auto-delete:true, exclusive:true. It will be redeclared if the broker stops and is restarted while the connection factory is alive, but all messages will be lost. 
17:22:14,786 INFO RabbitAdmin:399 - Auto-declaring a non-durable, auto-delete, or exclusive Queue (e4825008-954f-4154-bd61-9b67e0ff582e) durable:false, auto-delete:true, exclusive:true. It will be redeclared if the broker stops and is restarted while the connection factory is alive, but all messages will be lost. 
17:22:14,786 INFO RabbitAdmin:399 - Auto-declaring a non-durable, auto-delete, or exclusive Queue (001bd357-6203-49a6-b573-7f1a998ff750) durable:false, auto-delete:true, exclusive:true. It will be redeclared if the broker stops and is restarted while the connection factory is alive, but all messages will be lost. 
17:22:14,786 INFO RabbitAdmin:399 - Auto-declaring a non-durable, auto-delete, or exclusive Queue (3880a65f-0104-4c99-96ac-1958ace7e2e0) durable:false, auto-delete:true, exclusive:true. It will be redeclared if the broker stops and is restarted while the connection factory is alive, but all messages will be lost. 
17:22:14,786 INFO RabbitAdmin:399 - Auto-declaring a non-durable, auto-delete, or exclusive Queue (3b1bc32a-872e-4fc3-ba2a-de200bc7b758) durable:false, auto-delete:true, exclusive:true. It will be redeclared if the broker stops and is restarted while the connection factory is alive, but all messages will be lost. 
17:22:14,791 INFO CachingConnectionFactory:213 - Created new connection: [email protected] [delegate=amqp://[email protected]:5671/] 
17:22:14,791 DEBUG RabbitAdmin:382 - Initializing declarations 
17:22:14,791 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'serviceAExchange1' 
17:22:14,791 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'serviceAExchange2' 
17:22:14,791 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'serviceBExchange1' 
17:22:14,791 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'serviceBExchange2' 
17:22:14,791 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'org.springframework.amqp.core.TopicExchange#0' 
17:22:14,792 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'org.springframework.amqp.core.TopicExchange#1' 
17:22:14,792 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'org.springframework.amqp.core.TopicExchange#2' 
17:22:14,792 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'ServiceAQueue1' 
17:22:14,792 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'ServiceAQueue2' 
17:22:14,792 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'ServiceBQueue1' 
17:22:14,792 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'ServiceBQueue2' 
17:22:14,792 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'consumer.index.amqp.consumerQueue' 
17:22:14,792 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'org.springframework.amqp.rabbit.config.BindingFactoryBean#0' 
17:22:14,792 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'org.springframework.amqp.rabbit.config.BindingFactoryBean#1' 
17:22:14,792 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'org.springframework.amqp.rabbit.config.BindingFactoryBean#2' 
17:22:14,792 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'org.springframework.amqp.rabbit.config.BindingFactoryBean#3' 
17:22:14,792 DEBUG DefaultListableBeanFactory:251 - Returning cached instance of singleton bean 'org.springframework.amqp.rabbit.config.BindingFactoryBean#4' 
17:22:14,792 INFO RabbitAdmin:399 - Auto-declaring a non-durable, auto-delete, or exclusive Queue (07475112-7be0-4c8d-b6e5-3279e81a1aff) durable:false, auto-delete:true, exclusive:true. It will be redeclared if the broker stops and is restarted while the connection factory is alive, but all messages will be lost. 
17:22:14,792 INFO RabbitAdmin:399 - Auto-declaring a non-durable, auto-delete, or exclusive Queue (e4825008-954f-4154-bd61-9b67e0ff582e) durable:false, auto-delete:true, exclusive:true. It will be redeclared if the broker stops and is restarted while the connection factory is alive, but all messages will be lost. 
17:22:14,792 INFO RabbitAdmin:399 - Auto-declaring a non-durable, auto-delete, or exclusive Queue (001bd357-6203-49a6-b573-7f1a998ff750) durable:false, auto-delete:true, exclusive:true. It will be redeclared if the broker stops and is restarted while the connection factory is alive, but all messages will be lost. 
17:22:14,792 INFO RabbitAdmin:399 - Auto-declaring a non-durable, auto-delete, or exclusive Queue (3880a65f-0104-4c99-96ac-1958ace7e2e0) durable:false, auto-delete:true, exclusive:true. It will be redeclared if the broker stops and is restarted while the connection factory is alive, but all messages will be lost. 
17:22:14,792 INFO RabbitAdmin:399 - Auto-declaring a non-durable, auto-delete, or exclusive Queue (3b1bc32a-872e-4fc3-ba2a-de200bc7b758) durable:false, auto-delete:true, exclusive:true. It will be redeclared if the broker stops and is restarted while the connection factory is alive, but all messages will be lost. 
17:22:14,811 DEBUG CachingConnectionFactory:395 - Creating cached Rabbit Channel from PublisherCallbackChannelImpl: AMQChannel(amqp://[email protected]:5671/,1) 
17:22:14,811 DEBUG CachingConnectionFactory:395 - Creating cached Rabbit Channel from PublisherCallbackChannelImpl: AMQChannel(amqp://[email protected]:5671/,1) 
17:22:14,821 DEBUG RabbitTemplate:1045 - Executing callback on RabbitMQ Channel: Cached Rabbit Channel: PublisherCallbackChannelImpl: AMQChannel(amqp://[email protected]:5671/,1) 
17:22:14,821 DEBUG RabbitAdmin:444 - declaring Exchange 'serviceAExchange1' 
17:22:14,822 DEBUG RabbitTemplate:1045 - Executing callback on RabbitMQ Channel: Cached Rabbit Channel: PublisherCallbackChannelImpl: AMQChannel(amqp://[email protected]:5671/,1) 
17:22:14,825 DEBUG RabbitAdmin:444 - declaring Exchange 'serviceAExchange1' 
17:22:14,827 DEBUG RabbitAdmin:444 - declaring Exchange 'serviceAExchange2' 
17:22:14,828 DEBUG RabbitAdmin:444 - declaring Exchange 'serviceAExchange2' 
17:22:14,829 DEBUG RabbitAdmin:444 - declaring Exchange 'serviceBExchange1' 
17:22:14,830 DEBUG RabbitAdmin:444 - declaring Exchange 'serviceBExchange1' 
17:22:14,832 DEBUG RabbitAdmin:444 - declaring Exchange 'serviceBExchange2' 
17:22:14,835 DEBUG RabbitAdmin:444 - declaring Exchange 'serviceBExchange2' 
17:22:14,836 DEBUG RabbitAdmin:472 - declaring Queue '07475112-7be0-4c8d-b6e5-3279e81a1aff' 
17:22:14,837 DEBUG RabbitAdmin:472 - declaring Queue '07475112-7be0-4c8d-b6e5-3279e81a1aff' 
17:22:14,843 DEBUG RabbitAdmin:472 - declaring Queue 'e4825008-954f-4154-bd61-9b67e0ff582e' 
17:22:14,845 DEBUG RabbitAdmin:472 - declaring Queue '001bd357-6203-49a6-b573-7f1a998ff750' 
17:22:14,848 DEBUG RabbitAdmin:472 - declaring Queue '3880a65f-0104-4c99-96ac-1958ace7e2e0' 
17:22:14,853 DEBUG RabbitAdmin:472 - declaring Queue '3b1bc32a-872e-4fc3-ba2a-de200bc7b758' 
17:22:14,856 DEBUG PublisherCallbackChannelImpl:654 - PendingConfirms cleared 
17:22:14,856 DEBUG RabbitAdmin:511 - Binding destination [07475112-7be0-4c8d-b6e5-3279e81a1aff (QUEUE)] to exchange [serviceAExchange1] with routing key [] 
17:22:14,858 ERROR CachingConnectionFactory:292 - Channel shutdown: channel error; protocol method: #method<channel.close>(reply-code=405, reply-text=RESOURCE_LOCKED - cannot obtain exclusive access to locked queue '07475112-7be0-4c8d-b6e5-3279e81a1aff' in vhost '/', class-id=50, method-id=10) 
17:22:14,859 DEBUG CachingConnectionFactory:673 - Detected closed channel on exception. Re-initializing: PublisherCallbackChannelImpl: AMQChannel(amqp://[email protected]:5671/,1) 
17:22:14,860 DEBUG RabbitAdmin:511 - Binding destination [e4825008-954f-4154-bd61-9b67e0ff582e (QUEUE)] to exchange [serviceAExchange2] with routing key [] 
17:22:14,862 DEBUG RabbitAdmin:511 - Binding destination [001bd357-6203-49a6-b573-7f1a998ff750 (QUEUE)] to exchange [serviceBExchange1] with routing key [] 
17:22:14,864 WARN RabbitAdmin:494 - Failed to declare queue:Queue [name=07475112-7be0-4c8d-b6e5-3279e81a1aff, durable=false, autoDelete=true, exclusive=true, arguments=null], continuing... 
java.io.IOException 
     at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:106) 
     [...] 
Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol method: #method<channel.close>(reply-code=405, reply-text=RESOURCE_LOCKED - cannot obtain exclusive access to locked queue '07475112-7be0-4c8d-b6e5-3279e81a1aff' in vhost '/', class-id=50, method-id=10) 
[ More declaration errors follow ] 
+0

それは、1つの奇妙です'17:22:14,836 DEBUG RabbitAdmin:472 - 宣言するキュー07475112-7be0-4c8d-b6e5-3279e81a1aff 17:22:14,837 DEBUG RabbitAdmin:472 - キューを宣言しているキューは2回宣言されています。 07475112-7be0-4c8d-b6e5-3279e81a1aff''正確にこのキューは例外の後半で説明されています。たぶん、githubやbitbucketでプロジェクトを公開して、全体の構成を確認することができます。 –

+0

他のキューは、私が含まなかった追加の例外で言及されました。私はまた、なぜそれが特に2回続けて宣言されたのかよく分かりません。残念ながら、プロジェクトの残りの部分を公開することはできません。 – Fopedush

答えて

2

1.4。6歳はほぼ2歳です。現在のバージョン(1.7.4)で同じ動作が見られますか?

例外reply-code=405, reply-text=RESOURCE_LOCKEDは、キューに2つのコンシューマがあることを示します。 Tomcat(または他のWebコンテナ)のSpring Appsでよく見られる間違いは、アプリケーションコンテキストをルートアプリケーションコンテキストと、もう一度ディスパッチャサーブレットのコンテキストに2回ロードすることです。

org.springframeworkのDEBUGログを有効にして、すべてのBean宣言を実行すると役立ちます。

私はシンプルなアプリ(メイン)にあなたの設定をロードし、私も力閉鎖管理UIを介して接続した後、何の問題も表示されない...

Auto-declaring a non-durable, auto-delete, or exclusive Queue (47c551b8-c290-4ff0-ae42-11f24d576399) durable:false, auto-delete:true, exclusive:true. It will be redeclared if the broker stops and is restarted while the connection factory is alive, but all messages will be lost. 
Auto-declaring a non-durable, auto-delete, or exclusive Queue (c494990e-9069-4561-8d64-1eb0373cf681) durable:false, auto-delete:true, exclusive:true. It will be redeclared if the broker stops and is restarted while the connection factory is alive, but all messages will be lost. 
Started So46496960Application in 1.454 seconds (JVM running for 1.879) 
#method<connection.close>(reply-code=320, reply-text=CONNECTION_FORCED - Closed via management plugin, class-id=0, method-id=0) 
#method<connection.close>(reply-code=320, reply-text=CONNECTION_FORCED - Closed via management plugin, class-id=0, method-id=0) 
[email protected] [delegate=amqp://[email protected]:5672/, localPort= 58388], acknowledgeMode=AUTO local queue size=0 
[email protected] [delegate=amqp://[email protected]:5672/, localPort= 58388], acknowledgeMode=AUTO local queue size=0 
rabbitConnectionFactory#4015e40b:1/[email protected] [delegate=amqp://[email protected]:5672/, localPort= 58404] 
Auto-declaring a non-durable, auto-delete, or exclusive Queue (47c551b8-c290-4ff0-ae42-11f24d576399) durable:false, auto-delete:true, exclusive:true. It will be redeclared if the broker stops and is restarted while the connection factory is alive, but all messages will be lost. 
Auto-declaring a non-durable, auto-delete, or exclusive Queue (c494990e-9069-4561-8d64-1eb0373cf681) durable:false, auto-delete:true, exclusive:true. It will be redeclared if the broker stops and is restarted while the connection factory is alive, but all messages will be lost. 
+0

お返事ありがとうございます!私は今掘り下げている、と私はアプリケーションのコンテキストが2回読み込まれているとは思わない。しかし、私は春のデバッグをオンにした後に何かを気付いた:トラブル領域の前に 'RabbitAdmin:382 - 宣言の初期化'の複数のインスタンス。私の場合の各クライアントは独自のウサギを持っています:管理者 - と私の読書は、ウサギの管理者がアプリケーションのコンテキスト全体にあるすべてのキューを初期化することを示しているようです。これが私の問題かもしれないと思いますか? – Fopedush

+0

私はこの質問に参考にしたデバッグ出力を追加しました。 – Fopedush

+0

申し訳ありません - 今週は休暇中です。理解できない場合は来週にpingしてください。同じ接続ファクトリを使用し、そのキャッシュモードがCHANNEL(デフォルト)である限り、複数の管理者がキューを宣言しても、同じ接続を共有するので、問題はありません。あなたは間違いなく同じキューに複数のコンシューマを持つようです。 –

関連する問題