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]