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]

Reply via email to