You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@qpid.apache.org by mohank <mo...@eventtracker.com.INVALID> on 2020/05/26 06:56:37 UTC

[QPID C++ : Request-response] Exception thrown

Hi,

I have tried with sample application for request response app.

Broker : rabbitMQ 3.8.0
client : QPID C++ 1.36
Reference doc :
https://qpid.apache.org/releases/qpid-cpp-1.39.0/messaging-api/book/ch01s12.html

getting the below exception.

Address responseQueue("#response-queue; {create:always, delete:always}");
Receiver receiver = session.createReceiver(responseQueue);
	*Exception : Delete policies not supported over AMQP 1.0.*
	
//Removed delete:always
Address responseQueue("#response-queue; {create:always}");
Receiver receiver = session.createReceiver(responseQueue);
	*Exception : Session ended by peer with amqp:not-implemented: Dynamic
sources not supported*

Please do guide me, If I am missing anything.

Thanks,
Mohan  





--
Sent from: http://qpid.2158936.n2.nabble.com/Apache-Qpid-users-f2158936.html

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org


Re: [QPID C++ : Request-response] Exception thrown

Posted by Gordon Sim <gs...@redhat.com>.
On 27/05/2020 7:44 pm, mohank wrote:
> Hi Gordon,
> 
>> Multiple consumers can certainly consume from the same key. However the
>> routing key (or binding key in this context) is not a property of the
>> consumer though. This is the case even for 0.9.1; the key or keys relate
>> the queue to the exchange.
>     
> So in this case,
> - Consuming Queue by multiple consumer exchange uses round robin method to
> distribute data  to all consumer,

A queue will in general distribute message to all consumers on it. It 
may or may not be a 'strict' round robin.

> - Consuming using key by multiple consumer, each consumer get its own copy.
>             can't consumer filter and consume data only which is meant for
> that ?

You can certainly have filters. However I don't believe RabbitMQ 
supports them 
(https://github.com/rabbitmq/rabbitmq-amqp1.0#limitations-and-unsupported-features).

> Is there any performance cost if one million Client creates its own one
> million reply-to temp queue in RabbitMQ server and stay connect for long ?
>                    Or
> is it good idea to delete reply-to temp queue on every send call?

That is really a question for the broker. Each queue will consume some 
memory, but then so will each connection, session, consumer etc.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org


Re: [QPID C++ : Request-response] Exception thrown

Posted by mohank <mo...@eventtracker.com.INVALID>.
Hi Gordon,

>Multiple consumers can certainly consume from the same key. However the
>routing key (or binding key in this context) is not a property of the
>consumer though. This is the case even for 0.9.1; the key or keys relate
>the queue to the exchange.
   
So in this case, 
- Consuming Queue by multiple consumer exchange uses round robin method to 
distribute data  to all consumer, 
- Consuming using key by multiple consumer, each consumer get its own copy.
           can't consumer filter and consume data only which is meant for
that ?

Is there any performance cost if one million Client creates its own one
million reply-to temp queue in RabbitMQ server and stay connect for long ?
                  Or 
is it good idea to delete reply-to temp queue on every send call?

Thanks,
Mohan



--
Sent from: http://qpid.2158936.n2.nabble.com/Apache-Qpid-users-f2158936.html

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org


Re: [QPID C++ : Request-response] Exception thrown

Posted by Gordon Sim <gs...@redhat.com>.
On 27/05/2020 6:08 pm, mohank wrote:
> Hi Gordon,
> 
> for direct reply-to, If I use "'/exchange/amq.direct/<uuid>'" at receiver
> side it create temp Queue for each client.
> 
> So If I have thousand client application sending data and wait for reply.
> means thousand temp Queues created for reply-to.
> 
> Note:
>         AMQP 0.9.1 ; All the created reply-to queues are not
> displayed(Hidden) in RabbitMQ console.
>         AMQP 1.0 : All the created reply-to queues are displayed in RabbitMQ
> console
> 
> 
> 1) In Rabbitmq AMQP 1.0, is there any possibility that one queue can be
> subscribed by multiple consume and consume data based on subscription
> key(i.e. routing key)
> 
> EX :  TestQueue ,bound with key1, key2, key3....
>          Client 1 : consume TestQueue with RK key 1
>          Client 2 : consume TestQueue with RK key 2
>          Client 3 : consume TestQueue with RK key 3...

Multiple consumers can certainly consume from the same key. However the 
routing key (or binding key in this context) is not a property of the 
consumer though. This is the case even for 0.9.1; the key or keys relate 
the queue to the exchange.

> 2) Is it possible in AMQP 1.0, that one consumer can consume data from Queue
> bound with multiple routing key.

Yes, but I believe with RabbitMQ you can only do that by separately 
binding the queue.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org


Re: [QPID C++ : Request-response] Exception thrown

Posted by mohank <mo...@eventtracker.com.INVALID>.
Hi Gordon,

for direct reply-to, If I use "'/exchange/amq.direct/<uuid>'" at receiver
side it create temp Queue for each client.

So If I have thousand client application sending data and wait for reply.
means thousand temp Queues created for reply-to.

Note:
       AMQP 0.9.1 ; All the created reply-to queues are not
displayed(Hidden) in RabbitMQ console. 
       AMQP 1.0 : All the created reply-to queues are displayed in RabbitMQ
console 


1) In Rabbitmq AMQP 1.0, is there any possibility that one queue can be
subscribed by multiple consume and consume data based on subscription
key(i.e. routing key)

EX :  TestQueue ,bound with key1, key2, key3....
        Client 1 : consume TestQueue with RK key 1
        Client 2 : consume TestQueue with RK key 2
        Client 3 : consume TestQueue with RK key 3...

2) Is it possible in AMQP 1.0, that one consumer can consume data from Queue
bound with multiple routing key.

Thanks,
Mohan
  
     



--
Sent from: http://qpid.2158936.n2.nabble.com/Apache-Qpid-users-f2158936.html

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org


Re: [QPID C++ : Request-response] Exception thrown

Posted by Gordon Sim <gs...@redhat.com>.
On 26/05/2020 7:56 am, mohank wrote:
> Hi,
> 
> I have tried with sample application for request response app.
> 
> Broker : rabbitMQ 3.8.0
> client : QPID C++ 1.36
> Reference doc :
> https://qpid.apache.org/releases/qpid-cpp-1.39.0/messaging-api/book/ch01s12.html
> 
> getting the below exception.
> 
> Address responseQueue("#response-queue; {create:always, delete:always}");
> Receiver receiver = session.createReceiver(responseQueue);
> 	*Exception : Delete policies not supported over AMQP 1.0.*
> 	
> //Removed delete:always
> Address responseQueue("#response-queue; {create:always}");
> Receiver receiver = session.createReceiver(responseQueue);
> 	*Exception : Session ended by peer with amqp:not-implemented: Dynamic
> sources not supported*

RabbitMQ does not support temporary, server assigned addresses (i.e. the 
'dynamic' addresses). You could instead try to use something like 
"'/exchange/amq.direct/<uuid>'" as the address for the receiver, where 
uuid is replaced with some unique character string.


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@qpid.apache.org
For additional commands, e-mail: users-help@qpid.apache.org