That's a pity.

Have you tried using node instead of link. I have to confess that I'm not really clear about the use of link and to be honest most of the addresses I've used that have actually created queues have specified node. It's probably a red herring but might be worth a try unless somebody has a more scientific answer.

BTW I thought exclusive false and autodelete false was actually the default behaviour the queue that gets created when I do:

test; {create: receiver, node: {x-declare: {arguments: {'qpid.policy_type': ring, 'qpid.max_size': 500000000}}, x-bindings: [{exchange: 'amq.match', queue: 'test', key: 'data1', arguments: {x-match: all, data-service: amqp-delivery, item-owner: fadams}}]}}

lasts until I explicitly delete it and I can connect multiple consumers to it

Frase

Jakub Scholz wrote:
Hi Fraser,

I was actually trying both, but it doesn't seem to be the problem. The
exclusive flag seemed to be set correctly to false until it reached
the lines mentioned in the initial email.

In Python, it seems to work as I expected - when you set the exclusive
option to False, it is created as non-exclusive. If you set it to
True, it is exclusive.

Regards
JAkub

On Fri, Sep 16, 2011 at 15:45, Fraser Adams
<[email protected]> wrote:
Hmmm do you need to use False (with an upper case F) rather than false?

I've been using the org.apache.qpid.messaging.Address.AddressParser for a
couple of things and I'm pretty sure that I noticed True and False got
encoded as a Boolean whereas true and false get encoded as a String. Pretty
irksome, but that just *may* be your problem??

HTH
Frase

Jakub Scholz wrote:
Hi,

Today, I found a problem with defining an queue using a very specific
address in JMS API. I have a following address:

response/response_routing_key; { create: receiver, link: { name:
'response_queue', durable: false, x-declare: { auto-delete: false,
exclusive: false, arguments : { 'qpid.max_count': 1000,
'qpid.max_size': 1000000, 'qpid.policy_type': ring } } } }

This address should:
1) Create a non-durable queue named "response_queue", with
qpid.max_count=1000, qpid.max_size=1000000, qpid.policy_type=ring. The
queue should not be exclusive and should not be auto-delete
2) Bind the newly created queue to the exchange named "response" using
the key "response_routing_key"

It almost works, except the auto-delete and exclusive options being
ignored. I was trying to find out why are they getting lost and it
seems the values are properly loaded by the AddressHelper class, but
later they are overwritten in AMQSession_0_10.java on line 1342 and
1342:

1342            node.setExclusive(true);
1343            node.setAutoDelete(!node.isDurable());

(http://svn.apache.org/viewvc/qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java?view=markup)

I do not fully understand the reason why are they being overwritten -
is this a bug or is this intentional? Unless there is some intention
behind it, I will enter an JIRA ... eventually I can also prepare a
patch removing these lines.

Regards
Jakub

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]




---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to