[ 
https://issues.apache.org/jira/browse/CAMEL-15086?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

michael elbaz updated CAMEL-15086:
----------------------------------
    Fix Version/s:     (was: 3.4.0)
      Description: 
Hello when i try to use args/args option with concurrentConsumers > 1 i get 
this exception 
{code:java}
 
from("rabbitmq:test?queue=test&arg.queue.x-max-priority=10&prefetchEnabled=true&prefetchCount=10&concurrentConsumers=2")
                .to("log:cheese");
{code}


{code:java}
java.io.IOException: null
        at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:129) 
~[amqp-client-5.7.3.jar:5.7.3]
        at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:125) 
~[amqp-client-5.7.3.jar:5.7.3]
        at 
com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:147) 
~[amqp-client-5.7.3.jar:5.7.3]
        at com.rabbitmq.client.impl.ChannelN.queueDeclare(ChannelN.java:968) 
~[amqp-client-5.7.3.jar:5.7.3]
        at 
com.rabbitmq.client.impl.recovery.AutorecoveringChannel.queueDeclare(AutorecoveringChannel.java:333)
 ~[amqp-client-5.7.3.jar:5.7.3]
        at 
org.apache.camel.component.rabbitmq.RabbitMQDeclareSupport.declareAndBindQueue(RabbitMQDeclareSupport.java:132)
 ~[camel-rabbitmq-3.3.0.jar:3.3.0]
        at 
org.apache.camel.component.rabbitmq.RabbitMQDeclareSupport.declareAndBindExchangeWithQueue(RabbitMQDeclareSupport.java:55)
 ~[camel-rabbitmq-3.3.0.jar:3.3.0]
        at 
org.apache.camel.component.rabbitmq.RabbitMQDeclareSupport.declareAndBindExchangesAndQueuesUsing(RabbitMQDeclareSupport.java:36)
 ~[camel-rabbitmq-3.3.0.jar:3.3.0]
        at 
org.apache.camel.component.rabbitmq.RabbitMQEndpoint.declareExchangeAndQueue(RabbitMQEndpoint.java:243)
 ~[camel-rabbitmq-3.3.0.jar:3.3.0]
        at 
org.apache.camel.component.rabbitmq.RabbitConsumer.openChannel(RabbitConsumer.java:353)
 ~[camel-rabbitmq-3.3.0.jar:3.3.0]
        at 
org.apache.camel.component.rabbitmq.RabbitConsumer.reconnect(RabbitConsumer.java:324)
 ~[camel-rabbitmq-3.3.0.jar:3.3.0]
        at 
org.apache.camel.component.rabbitmq.RabbitMQConsumer$StartConsumerCallable.call(RabbitMQConsumer.java:221)
 [camel-rabbitmq-3.3.0.jar:3.3.0]
        at 
org.apache.camel.component.rabbitmq.RabbitMQConsumer$StartConsumerCallable.call(RabbitMQConsumer.java:201)
 [camel-rabbitmq-3.3.0.jar:3.3.0]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
[na:1.8.0_201]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
[na:1.8.0_201]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
[na:1.8.0_201]
        at java.lang.Thread.run(Thread.java:748) [na:1.8.0_201]
Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol 
method: #method<channel.close>(reply-code=406, reply-text=PRECONDITION_FAILED - 
inequivalent arg 'x-max-priority' for queue 'test' in vhost '/': received none 
but current is the value '10' of type 'signedint', class-id=50, method-id=10)
        at 
com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:66) 
~[amqp-client-5.7.3.jar:5.7.3]
        at 
com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:36)
 ~[amqp-client-5.7.3.jar:5.7.3]
        at 
com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:502)
 ~[amqp-client-5.7.3.jar:5.7.3]
        at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:293) 
~[amqp-client-5.7.3.jar:5.7.3]
        at 
com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:141) 
~[amqp-client-5.7.3.jar:5.7.3]
        ... 14 common frames omitted
Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol 
method: #method<channel.close>(reply-code=406, reply-text=PRECONDITION_FAILED - 
inequivalent arg 'x-max-priority' for queue 'test' in vhost '/': received none 
but current is the value '10' of type 'signedint', class-id=50, method-id=10)
        at com.rabbitmq.client.impl.ChannelN.asyncShutdown(ChannelN.java:522) 
~[amqp-client-5.7.3.jar:5.7.3]
        at com.rabbitmq.client.impl.ChannelN.processAsync(ChannelN.java:346) 
~[amqp-client-5.7.3.jar:5.7.3]
        at 
com.rabbitmq.client.impl.AMQChannel.handleCompleteInboundCommand(AMQChannel.java:182)
 ~[amqp-client-5.7.3.jar:5.7.3]
        at com.rabbitmq.client.impl.AMQChannel.handleFrame(AMQChannel.java:114) 
~[amqp-client-5.7.3.jar:5.7.3]
        at 
com.rabbitmq.client.impl.AMQConnection.readFrame(AMQConnection.java:672) 
~[amqp-client-5.7.3.jar:5.7.3]
        at 
com.rabbitmq.client.impl.AMQConnection.access$300(AMQConnection.java:48) 
~[amqp-client-5.7.3.jar:5.7.3]
        at 
com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:599) 
~[amqp-client-5.7.3.jar:5.7.3]
        ... 1 common frames omitted
{code}

Thanks for the help

  was:
Again with camel rabbitmq and args 
(https://jira.apache.org/jira/browse/CAMEL-14242?filter=-2) 

1 We can't use args with concurrent consumer 

{code:java}
 
from("rabbitmq:test?queue=test&arg.queue.x-max-priority=10&prefetchEnabled=true&prefetchCount=10&concurrentConsumers=2")
                .to("log:cheese");
{code}


{code:java}
java.io.IOException: null
        at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:129) 
~[amqp-client-5.7.3.jar:5.7.3]
        at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:125) 
~[amqp-client-5.7.3.jar:5.7.3]
        at 
com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:147) 
~[amqp-client-5.7.3.jar:5.7.3]
        at com.rabbitmq.client.impl.ChannelN.queueDeclare(ChannelN.java:968) 
~[amqp-client-5.7.3.jar:5.7.3]
        at 
com.rabbitmq.client.impl.recovery.AutorecoveringChannel.queueDeclare(AutorecoveringChannel.java:333)
 ~[amqp-client-5.7.3.jar:5.7.3]
        at 
org.apache.camel.component.rabbitmq.RabbitMQDeclareSupport.declareAndBindQueue(RabbitMQDeclareSupport.java:132)
 ~[camel-rabbitmq-3.3.0.jar:3.3.0]
        at 
org.apache.camel.component.rabbitmq.RabbitMQDeclareSupport.declareAndBindExchangeWithQueue(RabbitMQDeclareSupport.java:55)
 ~[camel-rabbitmq-3.3.0.jar:3.3.0]
        at 
org.apache.camel.component.rabbitmq.RabbitMQDeclareSupport.declareAndBindExchangesAndQueuesUsing(RabbitMQDeclareSupport.java:36)
 ~[camel-rabbitmq-3.3.0.jar:3.3.0]
        at 
org.apache.camel.component.rabbitmq.RabbitMQEndpoint.declareExchangeAndQueue(RabbitMQEndpoint.java:243)
 ~[camel-rabbitmq-3.3.0.jar:3.3.0]
        at 
org.apache.camel.component.rabbitmq.RabbitConsumer.openChannel(RabbitConsumer.java:353)
 ~[camel-rabbitmq-3.3.0.jar:3.3.0]
        at 
org.apache.camel.component.rabbitmq.RabbitConsumer.reconnect(RabbitConsumer.java:324)
 ~[camel-rabbitmq-3.3.0.jar:3.3.0]
        at 
org.apache.camel.component.rabbitmq.RabbitMQConsumer$StartConsumerCallable.call(RabbitMQConsumer.java:221)
 [camel-rabbitmq-3.3.0.jar:3.3.0]
        at 
org.apache.camel.component.rabbitmq.RabbitMQConsumer$StartConsumerCallable.call(RabbitMQConsumer.java:201)
 [camel-rabbitmq-3.3.0.jar:3.3.0]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
[na:1.8.0_201]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
[na:1.8.0_201]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
[na:1.8.0_201]
        at java.lang.Thread.run(Thread.java:748) [na:1.8.0_201]
Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol 
method: #method<channel.close>(reply-code=406, reply-text=PRECONDITION_FAILED - 
inequivalent arg 'x-max-priority' for queue 'test' in vhost '/': received none 
but current is the value '10' of type 'signedint', class-id=50, method-id=10)
        at 
com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:66) 
~[amqp-client-5.7.3.jar:5.7.3]
        at 
com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:36)
 ~[amqp-client-5.7.3.jar:5.7.3]
        at 
com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:502)
 ~[amqp-client-5.7.3.jar:5.7.3]
        at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:293) 
~[amqp-client-5.7.3.jar:5.7.3]
        at 
com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:141) 
~[amqp-client-5.7.3.jar:5.7.3]
        ... 14 common frames omitted
Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; protocol 
method: #method<channel.close>(reply-code=406, reply-text=PRECONDITION_FAILED - 
inequivalent arg 'x-max-priority' for queue 'test' in vhost '/': received none 
but current is the value '10' of type 'signedint', class-id=50, method-id=10)
        at com.rabbitmq.client.impl.ChannelN.asyncShutdown(ChannelN.java:522) 
~[amqp-client-5.7.3.jar:5.7.3]
        at com.rabbitmq.client.impl.ChannelN.processAsync(ChannelN.java:346) 
~[amqp-client-5.7.3.jar:5.7.3]
        at 
com.rabbitmq.client.impl.AMQChannel.handleCompleteInboundCommand(AMQChannel.java:182)
 ~[amqp-client-5.7.3.jar:5.7.3]
        at com.rabbitmq.client.impl.AMQChannel.handleFrame(AMQChannel.java:114) 
~[amqp-client-5.7.3.jar:5.7.3]
        at 
com.rabbitmq.client.impl.AMQConnection.readFrame(AMQConnection.java:672) 
~[amqp-client-5.7.3.jar:5.7.3]
        at 
com.rabbitmq.client.impl.AMQConnection.access$300(AMQConnection.java:48) 
~[amqp-client-5.7.3.jar:5.7.3]
        at 
com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:599) 
~[amqp-client-5.7.3.jar:5.7.3]
        ... 1 common frames omitted
{code}

2 There is no way again to pass args parameter using endpointdsl 

{code:java}
rabbitmq("test")
                .queue("test")
                .prefetchEnabled(true)
                .concurrentConsumers(rabbitMqConfiguration.getPoolSize())
                .prefetchCount(30)
                .advanced()
                // The map here will be serialized using toString instead of 
using its entries
                .args(Collections.singletonMap("x-max-priority", 10))
                .threadPoolSize(rabbitMqConfiguration.getPoolSize())
{code}

3 There is no bindArgs parameter but the doc show one
4 The docs i unclear about how to pass agrs parameter, from the doc:
http://localhost:5672/exchange/queueargs=arg.queue.x-message-ttl=60000
What we are suppose to understand from this weird concatenated string ?
Please could you restore the old and simplest way to add args parameter

Thanks for the help


          Summary: RabbitMQ args and concurrentConsumers  (was: RabbitMQ args)

> RabbitMQ args and concurrentConsumers
> -------------------------------------
>
>                 Key: CAMEL-15086
>                 URL: https://issues.apache.org/jira/browse/CAMEL-15086
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-rabbitmq
>    Affects Versions: 3.3.0
>            Reporter: michael elbaz
>            Priority: Major
>
> Hello when i try to use args/args option with concurrentConsumers > 1 i get 
> this exception 
> {code:java}
>  
> from("rabbitmq:test?queue=test&arg.queue.x-max-priority=10&prefetchEnabled=true&prefetchCount=10&concurrentConsumers=2")
>                 .to("log:cheese");
> {code}
> {code:java}
> java.io.IOException: null
>       at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:129) 
> ~[amqp-client-5.7.3.jar:5.7.3]
>       at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:125) 
> ~[amqp-client-5.7.3.jar:5.7.3]
>       at 
> com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:147) 
> ~[amqp-client-5.7.3.jar:5.7.3]
>       at com.rabbitmq.client.impl.ChannelN.queueDeclare(ChannelN.java:968) 
> ~[amqp-client-5.7.3.jar:5.7.3]
>       at 
> com.rabbitmq.client.impl.recovery.AutorecoveringChannel.queueDeclare(AutorecoveringChannel.java:333)
>  ~[amqp-client-5.7.3.jar:5.7.3]
>       at 
> org.apache.camel.component.rabbitmq.RabbitMQDeclareSupport.declareAndBindQueue(RabbitMQDeclareSupport.java:132)
>  ~[camel-rabbitmq-3.3.0.jar:3.3.0]
>       at 
> org.apache.camel.component.rabbitmq.RabbitMQDeclareSupport.declareAndBindExchangeWithQueue(RabbitMQDeclareSupport.java:55)
>  ~[camel-rabbitmq-3.3.0.jar:3.3.0]
>       at 
> org.apache.camel.component.rabbitmq.RabbitMQDeclareSupport.declareAndBindExchangesAndQueuesUsing(RabbitMQDeclareSupport.java:36)
>  ~[camel-rabbitmq-3.3.0.jar:3.3.0]
>       at 
> org.apache.camel.component.rabbitmq.RabbitMQEndpoint.declareExchangeAndQueue(RabbitMQEndpoint.java:243)
>  ~[camel-rabbitmq-3.3.0.jar:3.3.0]
>       at 
> org.apache.camel.component.rabbitmq.RabbitConsumer.openChannel(RabbitConsumer.java:353)
>  ~[camel-rabbitmq-3.3.0.jar:3.3.0]
>       at 
> org.apache.camel.component.rabbitmq.RabbitConsumer.reconnect(RabbitConsumer.java:324)
>  ~[camel-rabbitmq-3.3.0.jar:3.3.0]
>       at 
> org.apache.camel.component.rabbitmq.RabbitMQConsumer$StartConsumerCallable.call(RabbitMQConsumer.java:221)
>  [camel-rabbitmq-3.3.0.jar:3.3.0]
>       at 
> org.apache.camel.component.rabbitmq.RabbitMQConsumer$StartConsumerCallable.call(RabbitMQConsumer.java:201)
>  [camel-rabbitmq-3.3.0.jar:3.3.0]
>       at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
> [na:1.8.0_201]
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  [na:1.8.0_201]
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  [na:1.8.0_201]
>       at java.lang.Thread.run(Thread.java:748) [na:1.8.0_201]
> Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; 
> protocol method: #method<channel.close>(reply-code=406, 
> reply-text=PRECONDITION_FAILED - inequivalent arg 'x-max-priority' for queue 
> 'test' in vhost '/': received none but current is the value '10' of type 
> 'signedint', class-id=50, method-id=10)
>       at 
> com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:66) 
> ~[amqp-client-5.7.3.jar:5.7.3]
>       at 
> com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:36)
>  ~[amqp-client-5.7.3.jar:5.7.3]
>       at 
> com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:502)
>  ~[amqp-client-5.7.3.jar:5.7.3]
>       at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:293) 
> ~[amqp-client-5.7.3.jar:5.7.3]
>       at 
> com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:141) 
> ~[amqp-client-5.7.3.jar:5.7.3]
>       ... 14 common frames omitted
> Caused by: com.rabbitmq.client.ShutdownSignalException: channel error; 
> protocol method: #method<channel.close>(reply-code=406, 
> reply-text=PRECONDITION_FAILED - inequivalent arg 'x-max-priority' for queue 
> 'test' in vhost '/': received none but current is the value '10' of type 
> 'signedint', class-id=50, method-id=10)
>       at com.rabbitmq.client.impl.ChannelN.asyncShutdown(ChannelN.java:522) 
> ~[amqp-client-5.7.3.jar:5.7.3]
>       at com.rabbitmq.client.impl.ChannelN.processAsync(ChannelN.java:346) 
> ~[amqp-client-5.7.3.jar:5.7.3]
>       at 
> com.rabbitmq.client.impl.AMQChannel.handleCompleteInboundCommand(AMQChannel.java:182)
>  ~[amqp-client-5.7.3.jar:5.7.3]
>       at com.rabbitmq.client.impl.AMQChannel.handleFrame(AMQChannel.java:114) 
> ~[amqp-client-5.7.3.jar:5.7.3]
>       at 
> com.rabbitmq.client.impl.AMQConnection.readFrame(AMQConnection.java:672) 
> ~[amqp-client-5.7.3.jar:5.7.3]
>       at 
> com.rabbitmq.client.impl.AMQConnection.access$300(AMQConnection.java:48) 
> ~[amqp-client-5.7.3.jar:5.7.3]
>       at 
> com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:599) 
> ~[amqp-client-5.7.3.jar:5.7.3]
>       ... 1 common frames omitted
> {code}
> Thanks for the help



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to