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 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 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]
