It could be a little more complicated than just whether the queue itself is exclusive since AMQP 0-10 also has the additional concept of exclusive subscriptions (consumers) on a queue, which is what your logs actually appear to be complaining about.
It would help if you could tell us more about what you are actually doing with the clients/camel, what your destination strings are, etc etc. A set of the broker logs with the full client interaction would be useful (possibly after deleting the queue and starting fresh, although in saying that I now notice your queue is actually marked auto-delete according to the protocol logging you pasted.). As an aside, I take it you are doing this due to a need to integrate some existing systems using ActiveMQ JMS clients with others using Qpid/AMQP clients / broker? Robbie On 27 July 2012 12:31, Christopher Wood <[email protected]> wrote: > On Fri, Jul 27, 2012 at 03:53:13AM +0100, Oleksandr Rudyy wrote: > > Hi Christopher, > > > > What is the version of your broker? > > > > In case if broker version >= 0.16, I found so far 2 scenarios leading > > to these issue: > > 1) queue was created as exclusive, consumer subscribed, and > > exclusivity flag was reset through JMX while consumer was still > > present > > In the ruby client I set :exclusive => false. Come to think of it, I'm not > sure how to check from the amqp gem whether a queue is exclusive. I'll look > into that. > > > 2) queue was created as normal, exclusivity flag was set through JMX, > > consumer subscribed, and exclusivity flag was reset through JMX while > > consumer was still present > > I was seeing this even without using the JMX admin interface, oddly > enough. Though I did see the same behaviour after using JMX to change the > queue to exclusive and then non-exclusive. I wonder if I wasn't seeing the > right setting (but right now I don't have enough knowledge to say for sure). > > > It seems on resetting of exclusivity flag through JMX, broker does not > > clean owningSession and authorizationHolder. > > > > Could you please clarify whether by any chance you have run into any > > of these 2 scenarios? > > > > Kind Regards, > > Alex > > > > > > On 26 July 2012 21:56, Christopher Wood <[email protected]> > wrote: > > > Good morning. So far my qpid experience has been quite smooth, and > using it has been comparatively relaxing. Of course my hitch would come > when I try to mash up qpid, activemq, and camel. I'm asking my question > here since I'm having a problem with the mix, and the only inconsistency I > can find so far is in qpid components. If you'd like to punt me off to some > other list, I'm all ears. ;) > > > > > > The questions: > > > > > > Why do my qpid logs say that the queue is exclusive when my Qpid JMX > Management Console says that it isn't? > > > How do I ensure that my queues are non-exclusive? > > > If the queue has to be exclusive, what is keeping the queue exclusive > and how do I get it to stop? > > > > > > > > > > > > Short details: > > > > > > I have a qpid broker, with ActiveMQ/Camel connecting to slurp in > messages from a qpid queue and then translate them to an activemq queue for > JMS access. The ActiveMQ/Camel instance fails to do... some specific task > I'm not quite clear on, but fails because the queue is exclusive. I didn't > set the queue to be exclusive. > > > > > > Platform: > > > > > > Debian 6 x86_64 > > > AMQP Client to send the initial message is ruby 1.8.7 with the amqp > gem. > > > Oracle (Sun) java 1.6.0_31 > > > Qpid 0.16 (running as a daemon) > > > ActiveMQ 5.5.1 with camel-amqp-2.10.0.jar, qpid-common-0.16.jar, > qpid-client-0.16.jar (running as a daemon) > > > > > > The log says: > > > > > > 2012-07-26 16:27:04,584 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - SEND: [conn:6b6c14c0] ch=0 id=2 > ExecutionException(errorCode=RESOURCE_LOCKED, commandId=3, > description=Exclusive Queue: amq.cw2 owned exclusively by another session) > > > > > > My console says that amq.cw2 is exclusive:false, see the attached > screenshot. > > > > > > > > > > > > Longer details: > > > > > > Here is one connection from ActiveMQ, as seen in the qpid logs: > > > > > > 2012-07-26 16:27:04,527 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - RECV: [conn:6b6c14c0] AMQP.1 0-10 > > > 2012-07-26 16:27:04,528 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - SEND: [conn:6b6c14c0] AMQP.1 0-10 > > > 2012-07-26 16:27:04,529 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - SEND: [conn:6b6c14c0] ch=0 > ConnectionStart(serverProperties={qpid.federation_tag=58d89af6-e6d1-4705-8bd6-eec225e77fa3, > qpid.features=[qpid.jms-selector]}, mechanisms=[AMQPLAIN, PLAIN, CRAM-MD5], > locales=[en_US]) > > > 2012-07-26 16:27:04,529 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - FLUSH: [conn:6b6c14c0] > > > 2012-07-26 16:27:04,532 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - RECV: [conn:6b6c14c0] ch=0 > ConnectionStartOk(clientProperties={product=qpid, qpid.client_version=0.16, > platform=Java(TM) SE Runtime Environment, 1.6.0_31-b04, Sun Microsystems > Inc., amd64, Linux, 2.6.32-5-amd64, unknown, qpid.session_flow=1, > clientName=cwlab-011343334394271, qpid.client_pid=28586, > qpid.client_process=Qpid Java Client}, mechanism=CRAM-MD5) > > > 2012-07-26 16:27:04,532 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - SEND: [conn:6b6c14c0] ch=0 > ConnectionSecure(challenge=[B@4c68059) > > > 2012-07-26 16:27:04,533 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - FLUSH: [conn:6b6c14c0] > > > 2012-07-26 16:27:04,534 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - RECV: [conn:6b6c14c0] ch=0 > ConnectionSecureOk(response=[B@4145582) > > > 2012-07-26 16:27:04,535 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - SEND: [conn:6b6c14c0] ch=0 > ConnectionTune(channelMax=256, maxFrameSize=65535, heartbeatMin=0, > heartbeatMax=0) > > > 2012-07-26 16:27:04,535 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - FLUSH: [conn:6b6c14c0] > > > 2012-07-26 16:27:04,536 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - RECV: [conn:6b6c14c0] ch=0 > ConnectionTuneOk(channelMax=256, maxFrameSize=65535, heartbeat=0) > > > 2012-07-26 16:27:04,537 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - RECV: [conn:6b6c14c0] ch=0 > ConnectionOpen(virtualHost=sp, insist=true) > > > 2012-07-26 16:27:04,544 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - SEND: [conn:6b6c14c0] ch=0 > ConnectionOpenOk(knownHosts=[]) > > > 2012-07-26 16:27:04,544 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - FLUSH: [conn:6b6c14c0] > > > 2012-07-26 16:27:04,547 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - RECV: [conn:6b6c14c0] ch=0 > SessionAttach(name=[B@448be1c9) > > > 2012-07-26 16:27:04,547 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - SEND: [conn:6b6c14c0] ch=0 > SessionAttached(name=[B@448be1c9) > > > 2012-07-26 16:27:04,548 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - FLUSH: [conn:6b6c14c0] > > > 2012-07-26 16:27:04,550 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - RECV: [conn:6b6c14c0] ch=0 > SessionRequestTimeout(timeout=0) > > > 2012-07-26 16:27:04,550 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - SEND: [conn:6b6c14c0] ch=0 > SessionTimeout(timeout=0) > > > 2012-07-26 16:27:04,550 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - FLUSH: [conn:6b6c14c0] > > > 2012-07-26 16:27:04,551 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - RECV: [conn:6b6c14c0] ch=0 > SessionCommandPoint(commandId=0, commandOffset=0) > > > 2012-07-26 16:27:04,552 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - RECV: [conn:6b6c14c0] ch=0 > ExchangeBound(exchange=amq.cw2, queue=amq.cw2) > > > 2012-07-26 16:27:04,553 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - SEND: [conn:6b6c14c0] ch=0 > SessionCommandPoint(commandId=0, commandOffset=0) > > > 2012-07-26 16:27:04,553 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - FLUSH: [conn:6b6c14c0] > > > 2012-07-26 16:27:04,554 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - SEND: [conn:6b6c14c0] ch=0 id=0 > ExecutionResult(commandId=0, > value=ExchangeBoundResult(exchangeNotFound=true)) > > > 2012-07-26 16:27:04,554 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - FLUSH: [conn:6b6c14c0] > > > 2012-07-26 16:27:04,562 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - SEND: [conn:6b6c14c0] ch=0 > SessionFlush(completed=true) > > > 2012-07-26 16:27:04,563 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - FLUSH: [conn:6b6c14c0] > > > 2012-07-26 16:27:04,564 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - RECV: [conn:6b6c14c0] ch=0 > SessionFlush(completed=true) > > > 2012-07-26 16:27:04,565 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - SEND: [conn:6b6c14c0] ch=0 > SessionCompleted(commands={[0, 0]}) > > > 2012-07-26 16:27:04,565 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - FLUSH: [conn:6b6c14c0] > > > 2012-07-26 16:27:04,566 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - RECV: [conn:6b6c14c0] ch=0 > QueueQuery(queue=amq.cw2) > > > 2012-07-26 16:27:04,567 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - SEND: [conn:6b6c14c0] ch=0 id=1 > ExecutionResult(commandId=1, value=QueueQueryResult(queue=amq.cw2, > autoDelete=true, arguments={}, messageCount=1, subscriberCount=0)) > > > 2012-07-26 16:27:04,567 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - FLUSH: [conn:6b6c14c0] > > > 2012-07-26 16:27:04,572 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - RECV: [conn:6b6c14c0] ch=0 > SessionCompleted(commands=[0, 0]) > > > 2012-07-26 16:27:04,574 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - RECV: [conn:6b6c14c0] ch=0 [S] > ExecutionSync() > > > 2012-07-26 16:27:04,578 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - SEND: [conn:6b6c14c0] ch=0 > SessionCompleted(commands={[0, 2]}) > > > 2012-07-26 16:27:04,579 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - FLUSH: [conn:6b6c14c0] > > > 2012-07-26 16:27:04,581 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - SEND: [conn:6b6c14c0] ch=0 > SessionCompleted(commands={[0, 2]}) > > > 2012-07-26 16:27:04,581 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - FLUSH: [conn:6b6c14c0] > > > 2012-07-26 16:27:04,583 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - RECV: [conn:6b6c14c0] ch=0 > MessageSubscribe(queue=amq.cw2, destination=1, acceptMode=EXPLICIT, > acquireMode=PRE_ACQUIRED, resumeTtl=0, arguments={x-filter-jms-selector=}) > > > 2012-07-26 16:27:04,584 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - SEND: [conn:6b6c14c0] ch=0 id=2 > ExecutionException(errorCode=RESOURCE_LOCKED, commandId=3, > description=Exclusive Queue: amq.cw2 owned exclusively by another session) > > > 2012-07-26 16:27:04,585 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - FLUSH: [conn:6b6c14c0] > > > 2012-07-26 16:27:04,595 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - SEND: [conn:6b6c14c0] ch=0 > SessionRequestTimeout(timeout=0) > > > 2012-07-26 16:27:04,598 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - FLUSH: [conn:6b6c14c0] > > > 2012-07-26 16:27:04,599 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - SEND: [conn:6b6c14c0] ch=0 > SessionDetach(name=[B@fe14de0) > > > 2012-07-26 16:27:04,600 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - FLUSH: [conn:6b6c14c0] > > > 2012-07-26 16:27:04,602 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - RECV: [conn:6b6c14c0] ch=0 > MessageSetFlowMode(destination=1, flowMode=WINDOW) > > > 2012-07-26 16:27:04,603 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - RECV: [conn:6b6c14c0] ch=0 > MessageFlow(destination=1, unit=BYTE, value=4294967295) > > > 2012-07-26 16:27:04,604 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - RECV: [conn:6b6c14c0] ch=0 [S] > ExecutionSync() > > > 2012-07-26 16:27:04,606 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - RECV: [conn:6b6c14c0] ch=0 > SessionTimeout(timeout=0) > > > 2012-07-26 16:27:04,607 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - RECV: [conn:6b6c14c0] ch=0 > SessionDetached(name=[B@10bfb545, code=NORMAL) > > > 2012-07-26 16:27:07,801 DEBUG [IoReceiver - /10.201.140.228:60713] > util.Logger (Logger.java:54) - connection closed: conn:6b6c14c0 > > > > > > Here is the error from ActiveMQ: > > > > > > INFO | > Connection:amqp://cwood:********@cwlab-011343334394271/sp?brokerlist='tcp://cwlab-01.secret:5672?connectdelay='5000'&retries='1000'' > > > INFO | Using ProtocolVersion for Session:0-10 > > > INFO | New Method Dispatcher:AMQProtocolSession[null] > > > INFO | Connecting with ProtocolHandler Version:0-10 > > > INFO | The broker does not support the configured connection idle > timeout of 120 sec, using the brokers max supported value of 0 sec instead. > > > INFO | Connected with ProtocolHandler Version:0-10 > > > INFO | Successfully refreshed JMS Connection > > > INFO | Created session:org.apache.qpid.client.AMQSession_0_10@46fb3d6 > > > INFO | Prefetching delayed existing messages will not flow until > requested via receive*() or setML(). > > > INFO | Closing AMQConnection due to :org.apache.qpid.AMQException: > ch=0 id=2 ExecutionException(errorCode=RESOURCE_LOCKED, commandId=3, > description=Exclusive Queue: amq.cw2 owned exclusively by another session) > [error code 405: Already exists] > > > ERROR | Throwable Received but no listener set: > org.apache.qpid.AMQException: ch=0 id=2 > ExecutionException(errorCode=RESOURCE_LOCKED, commandId=3, > description=Exclusive Queue: amq.cw2 owned exclusively by another session) > [error code 405: Already exists] > > > INFO | Closing AMQConnection due to :org.apache.qpid.AMQException: > ch=0 id=2 ExecutionException(errorCode=RESOURCE_LOCKED, commandId=3, > description=Exclusive Queue: amq.cw2 owned exclusively by another session) > [error code 405: Already exists] > > > ERROR | Throwable Received but no listener set: > org.apache.qpid.AMQException: ch=0 id=2 > ExecutionException(errorCode=RESOURCE_LOCKED, commandId=3, > description=Exclusive Queue: amq.cw2 owned exclusively by another session) > [error code 405: Already exists] > > > INFO | Closing session: org.apache.qpid.client.AMQSession_0_10@46fb3d6 > > > WARN | Setup of JMS message listener invoker failed for destination > 'amq.cw2' - trying to recover. Cause: Error registering consumer: > org.apache.qpid.AMQException: ch=0 id=2 > ExecutionException(errorCode=RESOURCE_LOCKED, commandId=3, > description=Exclusive Queue: amq.cw2 owned exclusively by another session) > [error code 405: Already exists] > > > javax.jms.JMSException: Error registering consumer: > org.apache.qpid.AMQException: ch=0 id=2 > ExecutionException(errorCode=RESOURCE_LOCKED, commandId=3, > description=Exclusive Queue: amq.cw2 owned exclusively by another session) > [error code 405: Already exists] > > > at > org.apache.qpid.client.AMQSession$4.execute(AMQSession.java:2048) > > > at > org.apache.qpid.client.AMQSession$4.execute(AMQSession.java:2000) > > > at > org.apache.qpid.client.AMQConnectionDelegate_0_10.executeRetrySupport(AMQConnectionDelegate_0_10.java:366) > > > at > org.apache.qpid.client.AMQConnection.executeRetrySupport(AMQConnection.java:577) > > > at > org.apache.qpid.client.failover.FailoverRetrySupport.execute(FailoverRetrySupport.java:102) > > > at > org.apache.qpid.client.AMQSession.createConsumerImpl(AMQSession.java:1998) > > > at > org.apache.qpid.client.AMQSession.createConsumer(AMQSession.java:980) > > > at > org.springframework.jms.listener.AbstractPollingMessageListenerContainer.createConsumer(AbstractPollingMessageListenerContainer.java:477) > > > at > org.springframework.jms.listener.AbstractPollingMessageListenerContainer.createListenerConsumer(AbstractPollingMessageListenerContainer.java:221) > > > at > org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.initResourcesIfNecessary(DefaultMessageListenerContainer.java:1079) > > > at > org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.invokeListener(DefaultMessageListenerContainer.java:1055) > > > at > org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.executeOngoingLoop(DefaultMessageListenerContainer.java:1048) > > > at > org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:947) > > > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) > > > at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown > Source) > > > at java.lang.Thread.run(Unknown Source) > > > Caused by: org.apache.qpid.AMQException: ch=0 id=2 > ExecutionException(errorCode=RESOURCE_LOCKED, commandId=3, > description=Exclusive Queue: amq.cw2 owned exclusively by another session) > [error code 405: Already exists] > > > at > org.apache.qpid.client.AMQSession_0_10.setCurrentException(AMQSession_0_10.java:1054) > > > at > org.apache.qpid.client.AMQSession_0_10.sync(AMQSession_0_10.java:1034) > > > at > org.apache.qpid.client.AMQSession_0_10.sendConsume(AMQSession_0_10.java:646) > > > at > org.apache.qpid.client.AMQSession_0_10.sendConsume(AMQSession_0_10.java:67) > > > at > org.apache.qpid.client.AMQSession.consumeFromQueue(AMQSession.java:2595) > > > at > org.apache.qpid.client.AMQSession.registerConsumer(AMQSession.java:2965) > > > at > org.apache.qpid.client.AMQSession.access$500(AMQSession.java:97) > > > at > org.apache.qpid.client.AMQSession$4.execute(AMQSession.java:2025) > > > ... 15 more > > > > > > > > > > > > > > > I am horribly puzzled and I welcome any/all hints. > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: [email protected] > > > For additional commands, e-mail: [email protected] > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [email protected] > > For additional commands, e-mail: [email protected] > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > >
