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]
