You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@qpid.apache.org by Thomas Nguyen <th...@ign.com> on 2010/11/17 19:13:56 UTC
Exchange Routing Troubles
Hello,
I am testing QPID for the first time and am having trouble with messages
being routed from an exchange to a queue. I am using a C++ broker and
the Java client to publish messages. First off here is my initial
exchange and queue setup:
-bash-3.2$ ./qpid-config add exchange topic test.exchange --durable
-bash-3.2$ ./qpid-config add queue test.queue --durable
-bash-3.2$ ./qpid-config bind test.exchange test.queue routingKey
-bash-3.2$ ./qpid-config exchanges -b
Exchange '' (direct)
bind [test.queue] => test.queue
bind [reply-myhost.com.19752.1] => reply-myhost.com.19752.1
bind [topic-myhost.com.19752.1] => topic-myhost.com.19752.1
Exchange 'qpid.management' (topic)
bind [schema.#] => topic-myhost.com.19752.1
bind [console.obj.*.*.org.apache.qpid.broker.agent] =>
topic-myhost.com.19752.1
Exchange 'amq.direct' (direct)
bind [reply-myhost.com.19752.1] => reply-myhost.com.19752.1
Exchange 'amq.topic' (topic)
Exchange 'amq.fanout' (fanout)
Exchange 'amq.match' (headers)
Exchange 'test.exchange' (topic)
bind [routingKey] => test.queue
-bash-3.2$ ./qpid-config queues -b
Queue 'test.queue'
bind [test.queue] => ''
bind [routingKey] => test.exchange
Queue 'reply-myhost.com.19794.1'
bind [reply-myhost.com.19794.1] => ''
bind [reply-myhost.com.19794.1] => amq.direct
Queue 'topic-myhost.com.19794.1'
bind [topic-myhost.com.19794.1] => ''
bind [schema.#] => qpid.management
bind [console.obj.*.*.org.apache.qpid.broker.agent] =>
qpid.management
-bash-3.2$
I'm only concerned with the 'test.exchange' exchange and 'test.queue'
queue. After setting up the exchange and queue I send a message to the
exchange using the Java client and expect to find the 'test.queue' has a
new message. The Java code I run is pasted here:
http://pastie.org/1304220. Here is the status of the exchange and queue
using qpid-tool after publishing a message to the exchange:
qpid: show org.apache.qpid.broker:exchange
Object of type org.apache.qpid.broker:exchange: (last sample time:
23:44:11)
Type Element 104 105 106
107 108 109 110
========================================================================
============================================
property vhostRef 103 103 103
103 103 103 103
property name qpid.management amq.direct
amq.topic amq.fanout amq.match test.exchange
property type direct topic direct
topic fanout headers topic
property durable False False True
True True True True
property autoDelete False False False
False False False False
property altExchange <NULL> <NULL> <NULL>
<NULL> <NULL> <NULL> <NULL>
property arguments {} {} {}
{} {} {} {}
statistic producerCount 0 0 0 0
0 0 0
statistic producerCountHigh 0 0 0 0
0 0 0
statistic producerCountLow 0 0 0 0
0 0 0
statistic bindingCount 3 2 1 0
0 0 1
statistic bindingCountHigh 3 2 1 0
0 0 1
statistic bindingCountLow 1 0 0 0
0 0 1
statistic msgReceives 0 29551 6328 0
12 0 1
statistic msgDrops 0 26164 7 0
4 0 0
statistic msgRoutes 0 3387 6321 0
8 0 1
statistic byteReceives 0 3648438 2121538 0
72 0 12
statistic byteDrops 0 3179885 48 0
24 0 0
statistic byteRoutes 0 468553 2121490 0
48 0 12
qpid: show org.apache.qpid.broker:queue
Object of type org.apache.qpid.broker:queue: (last sample time:
23:44:21)
Type Element 111
112 113
========================================================================
========================================================================
==============================
property vhostRef 103
103 103
property name test.queue
mgmt-myhost.com.19824 repl-myhost.com.19824
property durable True
False False
property autoDelete False
True True
property exclusive False
True True
property arguments {u'qpid.file_size': 24L,
u'qpid.file_count': 8L} {} {}
property altExchange <NULL>
<NULL> <NULL>
statistic msgTotalEnqueues 0 messages
737 41
statistic msgTotalDequeues 0
735 41
statistic msgTxnEnqueues 0
0 0
statistic msgTxnDequeues 0
0 0
statistic msgPersistEnqueues 0
0 0
statistic msgPersistDequeues 0
0 0
statistic msgDepth 0
2 0
statistic byteDepth 0 octets
270 0
statistic byteTotalEnqueues 0
100204 15667
statistic byteTotalDequeues 0
99934 15667
statistic byteTxnEnqueues 0
0 0
statistic byteTxnDequeues 0
0 0
statistic bytePersistEnqueues 0
0 0
statistic bytePersistDequeues 0
0 0
statistic consumerCount 0 consumers
1 1
statistic consumerCountHigh 0
1 1
statistic consumerCountLow 0
0 0
statistic bindingCount 2 bindings
3 2
statistic bindingCountHigh 2
3 2
statistic bindingCountLow 2
0 0
statistic unackedMessages 0 messages
0 0
statistic unackedMessagesHigh 0
0 0
statistic unackedMessagesLow 0
0 0
statistic messageLatencySamples 0
0 0
statistic messageLatencyMin 0
0 0
statistic messageLatencyMax 0
0 0
statistic messageLatencyAverage 0
0 0
So the exchange reflects that a message has been published but the queue
does not reflect that it was routed the message. Anyone know what I am
doing wrong?
Re: Exchange Routing Troubles
Posted by Carl Trieloff <cc...@redhat.com>.
On 11/17/2010 09:54 PM, Wolgemuth Greg wrote:
> Reply is in-line.
>
> On Wed, 2010-11-17 at 10:13 -0800, Thomas Nguyen wrote:
>
>> Hello,
>>
>>
>>
>> I am testing QPID for the first time and am having trouble with messages
>> being routed from an exchange to a queue. I am using a C++ broker and
>> the Java client to publish messages. First off here is my initial
>> exchange and queue setup:
>>
>>
>>
>> -bash-3.2$ ./qpid-config add exchange topic test.exchange --durable
>>
>> -bash-3.2$ ./qpid-config add queue test.queue --durable
>>
>> -bash-3.2$ ./qpid-config bind test.exchange test.queue routingKey
>>
>>
>>
>> -bash-3.2$ ./qpid-config exchanges -b
>>
>> Exchange '' (direct)
>>
>> bind [test.queue] => test.queue
>>
>> bind [reply-myhost.com.19752.1] => reply-myhost.com.19752.1
>>
>> bind [topic-myhost.com.19752.1] => topic-myhost.com.19752.1
>>
>> Exchange 'qpid.management' (topic)
>>
>> bind [schema.#] => topic-myhost.com.19752.1
>>
>> bind [console.obj.*.*.org.apache.qpid.broker.agent] =>
>> topic-myhost.com.19752.1
>>
>> Exchange 'amq.direct' (direct)
>>
>> bind [reply-myhost.com.19752.1] => reply-myhost.com.19752.1
>>
>> Exchange 'amq.topic' (topic)
>>
>> Exchange 'amq.fanout' (fanout)
>>
>> Exchange 'amq.match' (headers)
>>
>> Exchange 'test.exchange' (topic)
>>
>> bind [routingKey] => test.queue
>>
>>
>>
>> -bash-3.2$ ./qpid-config queues -b
>>
>> Queue 'test.queue'
>>
>> bind [test.queue] => ''
>>
>> bind [routingKey] => test.exchange
>>
>> Queue 'reply-myhost.com.19794.1'
>>
>> bind [reply-myhost.com.19794.1] => ''
>>
>> bind [reply-myhost.com.19794.1] => amq.direct
>>
>> Queue 'topic-myhost.com.19794.1'
>>
>> bind [topic-myhost.com.19794.1] => ''
>>
>> bind [schema.#] => qpid.management
>>
>> bind [console.obj.*.*.org.apache.qpid.broker.agent] =>
>> qpid.management
>>
>> -bash-3.2$
>>
>>
>>
>> I'm only concerned with the 'test.exchange' exchange and 'test.queue'
>> queue. After setting up the exchange and queue I send a message to the
>> exchange using the Java client and expect to find the 'test.queue' has a
>> new message. The Java code I run is pasted here:
>> http://pastie.org/1304220. Here is the status of the exchange and queue
>> using qpid-tool after publishing a message to the exchange:
>>
>>
>>
>> qpid: show org.apache.qpid.broker:exchange
>>
>> Object of type org.apache.qpid.broker:exchange: (last sample time:
>> 23:44:11)
>>
>> Type Element 104 105 106
>> 107 108 109 110
>>
>>
>> ========================================================================
>> ============================================
>>
>> property vhostRef 103 103 103
>> 103 103 103 103
>>
>> property name qpid.management amq.direct
>> amq.topic amq.fanout amq.match test.exchange
>>
>> property type direct topic direct
>> topic fanout headers topic
>>
>> property durable False False True
>> True True True True
>>
>> property autoDelete False False False
>> False False False False
>>
>> property altExchange<NULL> <NULL> <NULL>
>> <NULL> <NULL> <NULL> <NULL>
>>
>> property arguments {} {} {}
>> {} {} {} {}
>>
>> statistic producerCount 0 0 0 0
>> 0 0 0
>>
>> statistic producerCountHigh 0 0 0 0
>> 0 0 0
>>
>> statistic producerCountLow 0 0 0 0
>> 0 0 0
>>
>> statistic bindingCount 3 2 1 0
>> 0 0 1
>>
>> statistic bindingCountHigh 3 2 1 0
>> 0 0 1
>>
>> statistic bindingCountLow 1 0 0 0
>> 0 0 1
>>
>> statistic msgReceives 0 29551 6328 0
>> 12 0 1
>>
>> statistic msgDrops 0 26164 7 0
>> 4 0 0
>>
>> statistic msgRoutes 0 3387 6321 0
>> 8 0 1
>>
>> statistic byteReceives 0 3648438 2121538 0
>> 72 0 12
>>
>> statistic byteDrops 0 3179885 48 0
>> 24 0 0
>>
>> statistic byteRoutes 0 468553 2121490 0
>> 48 0 12
>>
>>
>>
>> qpid: show org.apache.qpid.broker:queue
>>
>> Object of type org.apache.qpid.broker:queue: (last sample time:
>> 23:44:21)
>>
>> Type Element 111
>> 112 113
>>
>>
>> ========================================================================
>> ========================================================================
>> ==============================
>>
>> property vhostRef 103
>> 103 103
>>
>> property name test.queue
>> mgmt-myhost.com.19824 repl-myhost.com.19824
>>
>> property durable True
>> False False
>>
>> property autoDelete False
>> True True
>>
>> property exclusive False
>> True True
>>
>> property arguments {u'qpid.file_size': 24L,
>> u'qpid.file_count': 8L} {} {}
>>
>> property altExchange<NULL>
>> <NULL> <NULL>
>>
>> statistic msgTotalEnqueues 0 messages
>> 737 41
>>
>> statistic msgTotalDequeues 0
>> 735 41
>>
>> statistic msgTxnEnqueues 0
>> 0 0
>>
>> statistic msgTxnDequeues 0
>> 0 0
>>
>> statistic msgPersistEnqueues 0
>> 0 0
>>
>> statistic msgPersistDequeues 0
>> 0 0
>>
>> statistic msgDepth 0
>> 2 0
>>
>> statistic byteDepth 0 octets
>> 270 0
>>
>> statistic byteTotalEnqueues 0
>> 100204 15667
>>
>> statistic byteTotalDequeues 0
>> 99934 15667
>>
>> statistic byteTxnEnqueues 0
>> 0 0
>>
>> statistic byteTxnDequeues 0
>> 0 0
>>
>> statistic bytePersistEnqueues 0
>> 0 0
>>
>> statistic bytePersistDequeues 0
>> 0 0
>>
>> statistic consumerCount 0 consumers
>> 1 1
>>
>> statistic consumerCountHigh 0
>> 1 1
>>
>> statistic consumerCountLow 0
>> 0 0
>>
>> statistic bindingCount 2 bindings
>> 3 2
>>
>> statistic bindingCountHigh 2
>> 3 2
>>
>> statistic bindingCountLow 2
>> 0 0
>>
>> statistic unackedMessages 0 messages
>> 0 0
>>
>> statistic unackedMessagesHigh 0
>> 0 0
>>
>> statistic unackedMessagesLow 0
>> 0 0
>>
>> statistic messageLatencySamples 0
>> 0 0
>>
>> statistic messageLatencyMin 0
>> 0 0
>>
>> statistic messageLatencyMax 0
>> 0 0
>>
>> statistic messageLatencyAverage 0
>> 0 0
>>
>>
>>
>> So the exchange reflects that a message has been published but the queue
>> does not reflect that it was routed the message. Anyone know what I am
>> doing wrong?
>>
> The topic exchange can be thought of as a "publish/subscribe" exchange,
> in contrast to the direct exchange behaviour of "store and forward". In
> other words, a topic exchange will not leave messages in a queue - all
> subscribers to a queue will receive a copy of any message sent to that
> queue immediately, when using a topic exchange. If a message is sent to
> a queue on a topic exchange, and that queue has no subscribers, the
> messages simply vanishes (it is sent to no-one, and is then discarded).
>
> If you want the behaviour of having messages persist on the queue, with
> or without a subscriber, try establishing a 'direct' queue instead.
>
I don't believe this is correct. Messages are not dropped if no
subscriber to
the queue in the cpp broker, unless for example ttl is set on the messages.
I've had a brief look at the mail, but have not had 10 minutes to look into
what is wrong yet. maybe someone else on the list will get to it before
me...
Carl.
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:users-subscribe@qpid.apache.org
Re: Exchange Routing Troubles
Posted by Wolgemuth Greg <wo...@eseri.com>.
Reply is in-line.
On Wed, 2010-11-17 at 10:13 -0800, Thomas Nguyen wrote:
> Hello,
>
>
>
> I am testing QPID for the first time and am having trouble with messages
> being routed from an exchange to a queue. I am using a C++ broker and
> the Java client to publish messages. First off here is my initial
> exchange and queue setup:
>
>
>
> -bash-3.2$ ./qpid-config add exchange topic test.exchange --durable
>
> -bash-3.2$ ./qpid-config add queue test.queue --durable
>
> -bash-3.2$ ./qpid-config bind test.exchange test.queue routingKey
>
>
>
> -bash-3.2$ ./qpid-config exchanges -b
>
> Exchange '' (direct)
>
> bind [test.queue] => test.queue
>
> bind [reply-myhost.com.19752.1] => reply-myhost.com.19752.1
>
> bind [topic-myhost.com.19752.1] => topic-myhost.com.19752.1
>
> Exchange 'qpid.management' (topic)
>
> bind [schema.#] => topic-myhost.com.19752.1
>
> bind [console.obj.*.*.org.apache.qpid.broker.agent] =>
> topic-myhost.com.19752.1
>
> Exchange 'amq.direct' (direct)
>
> bind [reply-myhost.com.19752.1] => reply-myhost.com.19752.1
>
> Exchange 'amq.topic' (topic)
>
> Exchange 'amq.fanout' (fanout)
>
> Exchange 'amq.match' (headers)
>
> Exchange 'test.exchange' (topic)
>
> bind [routingKey] => test.queue
>
>
>
> -bash-3.2$ ./qpid-config queues -b
>
> Queue 'test.queue'
>
> bind [test.queue] => ''
>
> bind [routingKey] => test.exchange
>
> Queue 'reply-myhost.com.19794.1'
>
> bind [reply-myhost.com.19794.1] => ''
>
> bind [reply-myhost.com.19794.1] => amq.direct
>
> Queue 'topic-myhost.com.19794.1'
>
> bind [topic-myhost.com.19794.1] => ''
>
> bind [schema.#] => qpid.management
>
> bind [console.obj.*.*.org.apache.qpid.broker.agent] =>
> qpid.management
>
> -bash-3.2$
>
>
>
> I'm only concerned with the 'test.exchange' exchange and 'test.queue'
> queue. After setting up the exchange and queue I send a message to the
> exchange using the Java client and expect to find the 'test.queue' has a
> new message. The Java code I run is pasted here:
> http://pastie.org/1304220. Here is the status of the exchange and queue
> using qpid-tool after publishing a message to the exchange:
>
>
>
> qpid: show org.apache.qpid.broker:exchange
>
> Object of type org.apache.qpid.broker:exchange: (last sample time:
> 23:44:11)
>
> Type Element 104 105 106
> 107 108 109 110
>
>
> ========================================================================
> ============================================
>
> property vhostRef 103 103 103
> 103 103 103 103
>
> property name qpid.management amq.direct
> amq.topic amq.fanout amq.match test.exchange
>
> property type direct topic direct
> topic fanout headers topic
>
> property durable False False True
> True True True True
>
> property autoDelete False False False
> False False False False
>
> property altExchange <NULL> <NULL> <NULL>
> <NULL> <NULL> <NULL> <NULL>
>
> property arguments {} {} {}
> {} {} {} {}
>
> statistic producerCount 0 0 0 0
> 0 0 0
>
> statistic producerCountHigh 0 0 0 0
> 0 0 0
>
> statistic producerCountLow 0 0 0 0
> 0 0 0
>
> statistic bindingCount 3 2 1 0
> 0 0 1
>
> statistic bindingCountHigh 3 2 1 0
> 0 0 1
>
> statistic bindingCountLow 1 0 0 0
> 0 0 1
>
> statistic msgReceives 0 29551 6328 0
> 12 0 1
>
> statistic msgDrops 0 26164 7 0
> 4 0 0
>
> statistic msgRoutes 0 3387 6321 0
> 8 0 1
>
> statistic byteReceives 0 3648438 2121538 0
> 72 0 12
>
> statistic byteDrops 0 3179885 48 0
> 24 0 0
>
> statistic byteRoutes 0 468553 2121490 0
> 48 0 12
>
>
>
> qpid: show org.apache.qpid.broker:queue
>
> Object of type org.apache.qpid.broker:queue: (last sample time:
> 23:44:21)
>
> Type Element 111
> 112 113
>
>
> ========================================================================
> ========================================================================
> ==============================
>
> property vhostRef 103
> 103 103
>
> property name test.queue
> mgmt-myhost.com.19824 repl-myhost.com.19824
>
> property durable True
> False False
>
> property autoDelete False
> True True
>
> property exclusive False
> True True
>
> property arguments {u'qpid.file_size': 24L,
> u'qpid.file_count': 8L} {} {}
>
> property altExchange <NULL>
> <NULL> <NULL>
>
> statistic msgTotalEnqueues 0 messages
> 737 41
>
> statistic msgTotalDequeues 0
> 735 41
>
> statistic msgTxnEnqueues 0
> 0 0
>
> statistic msgTxnDequeues 0
> 0 0
>
> statistic msgPersistEnqueues 0
> 0 0
>
> statistic msgPersistDequeues 0
> 0 0
>
> statistic msgDepth 0
> 2 0
>
> statistic byteDepth 0 octets
> 270 0
>
> statistic byteTotalEnqueues 0
> 100204 15667
>
> statistic byteTotalDequeues 0
> 99934 15667
>
> statistic byteTxnEnqueues 0
> 0 0
>
> statistic byteTxnDequeues 0
> 0 0
>
> statistic bytePersistEnqueues 0
> 0 0
>
> statistic bytePersistDequeues 0
> 0 0
>
> statistic consumerCount 0 consumers
> 1 1
>
> statistic consumerCountHigh 0
> 1 1
>
> statistic consumerCountLow 0
> 0 0
>
> statistic bindingCount 2 bindings
> 3 2
>
> statistic bindingCountHigh 2
> 3 2
>
> statistic bindingCountLow 2
> 0 0
>
> statistic unackedMessages 0 messages
> 0 0
>
> statistic unackedMessagesHigh 0
> 0 0
>
> statistic unackedMessagesLow 0
> 0 0
>
> statistic messageLatencySamples 0
> 0 0
>
> statistic messageLatencyMin 0
> 0 0
>
> statistic messageLatencyMax 0
> 0 0
>
> statistic messageLatencyAverage 0
> 0 0
>
>
>
> So the exchange reflects that a message has been published but the queue
> does not reflect that it was routed the message. Anyone know what I am
> doing wrong?
The topic exchange can be thought of as a "publish/subscribe" exchange,
in contrast to the direct exchange behaviour of "store and forward". In
other words, a topic exchange will not leave messages in a queue - all
subscribers to a queue will receive a copy of any message sent to that
queue immediately, when using a topic exchange. If a message is sent to
a queue on a topic exchange, and that queue has no subscribers, the
messages simply vanishes (it is sent to no-one, and is then discarded).
If you want the behaviour of having messages persist on the queue, with
or without a subscriber, try establishing a 'direct' queue instead.
>
>
>
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:users-subscribe@qpid.apache.org
RE: Exchange Routing Troubles
Posted by Thomas Nguyen <th...@ign.com>.
Thank you all for your responses. The tip about using qpid-stat was
especially useful.
So I discovered the problem. I was creating a transacted session but
was not committing after publishing messages.
-----Original Message-----
From: Ted Ross [mailto:tross@redhat.com]
Sent: Thursday, November 18, 2010 5:58 AM
To: users@qpid.apache.org
Subject: Re: Exchange Routing Troubles
On 11/17/2010 01:13 PM, Thomas Nguyen wrote:
> Hello,
>
>
>
> I am testing QPID for the first time and am having trouble with
messages
> being routed from an exchange to a queue. I am using a C++ broker and
> the Java client to publish messages. First off here is my initial
> exchange and queue setup:
>
>
>
> -bash-3.2$ ./qpid-config add exchange topic test.exchange --durable
>
> -bash-3.2$ ./qpid-config add queue test.queue --durable
>
> -bash-3.2$ ./qpid-config bind test.exchange test.queue routingKey
>
>
>
> -bash-3.2$ ./qpid-config exchanges -b
>
> Exchange '' (direct)
>
> bind [test.queue] => test.queue
>
> bind [reply-myhost.com.19752.1] => reply-myhost.com.19752.1
>
> bind [topic-myhost.com.19752.1] => topic-myhost.com.19752.1
>
> Exchange 'qpid.management' (topic)
>
> bind [schema.#] => topic-myhost.com.19752.1
>
> bind [console.obj.*.*.org.apache.qpid.broker.agent] =>
> topic-myhost.com.19752.1
>
> Exchange 'amq.direct' (direct)
>
> bind [reply-myhost.com.19752.1] => reply-myhost.com.19752.1
>
> Exchange 'amq.topic' (topic)
>
> Exchange 'amq.fanout' (fanout)
>
> Exchange 'amq.match' (headers)
>
> Exchange 'test.exchange' (topic)
>
> bind [routingKey] => test.queue
>
>
>
> -bash-3.2$ ./qpid-config queues -b
>
> Queue 'test.queue'
>
> bind [test.queue] => ''
>
> bind [routingKey] => test.exchange
>
> Queue 'reply-myhost.com.19794.1'
>
> bind [reply-myhost.com.19794.1] => ''
>
> bind [reply-myhost.com.19794.1] => amq.direct
>
> Queue 'topic-myhost.com.19794.1'
>
> bind [topic-myhost.com.19794.1] => ''
>
> bind [schema.#] => qpid.management
>
> bind [console.obj.*.*.org.apache.qpid.broker.agent] =>
> qpid.management
>
> -bash-3.2$
>
>
>
> I'm only concerned with the 'test.exchange' exchange and 'test.queue'
> queue. After setting up the exchange and queue I send a message to
the
> exchange using the Java client and expect to find the 'test.queue' has
a
> new message. The Java code I run is pasted here:
> http://pastie.org/1304220. Here is the status of the exchange and
queue
> using qpid-tool after publishing a message to the exchange:
>
>
>
> qpid: show org.apache.qpid.broker:exchange
>
> Object of type org.apache.qpid.broker:exchange: (last sample time:
> 23:44:11)
>
> Type Element 104 105 106
> 107 108 109 110
>
>
>
========================================================================
> ============================================
>
> property vhostRef 103 103 103
> 103 103 103 103
>
> property name qpid.management amq.direct
> amq.topic amq.fanout amq.match test.exchange
>
> property type direct topic direct
> topic fanout headers topic
>
> property durable False False True
> True True True True
>
> property autoDelete False False False
> False False False False
>
> property altExchange<NULL> <NULL> <NULL>
> <NULL> <NULL> <NULL> <NULL>
>
> property arguments {} {} {}
> {} {} {} {}
>
> statistic producerCount 0 0 0
0
> 0 0 0
>
> statistic producerCountHigh 0 0 0
0
> 0 0 0
>
> statistic producerCountLow 0 0 0
0
> 0 0 0
>
> statistic bindingCount 3 2 1
0
> 0 0 1
>
> statistic bindingCountHigh 3 2 1
0
> 0 0 1
>
> statistic bindingCountLow 1 0 0
0
> 0 0 1
>
> statistic msgReceives 0 29551 6328
0
> 12 0 1
>
> statistic msgDrops 0 26164 7
0
> 4 0 0
>
> statistic msgRoutes 0 3387 6321
0
> 8 0 1
>
> statistic byteReceives 0 3648438 2121538
0
> 72 0 12
>
> statistic byteDrops 0 3179885 48
0
> 24 0 0
>
> statistic byteRoutes 0 468553 2121490
0
> 48 0 12
>
>
>
> qpid: show org.apache.qpid.broker:queue
>
> Object of type org.apache.qpid.broker:queue: (last sample time:
> 23:44:21)
>
> Type Element 111
> 112 113
>
>
>
========================================================================
>
========================================================================
> ==============================
>
> property vhostRef 103
> 103 103
>
> property name test.queue
> mgmt-myhost.com.19824 repl-myhost.com.19824
>
> property durable True
> False False
>
> property autoDelete False
> True True
>
> property exclusive False
> True True
>
> property arguments {u'qpid.file_size': 24L,
> u'qpid.file_count': 8L} {}
{}
>
> property altExchange<NULL>
> <NULL> <NULL>
>
> statistic msgTotalEnqueues 0 messages
> 737 41
>
> statistic msgTotalDequeues 0
> 735 41
>
> statistic msgTxnEnqueues 0
> 0 0
>
> statistic msgTxnDequeues 0
> 0 0
>
> statistic msgPersistEnqueues 0
> 0 0
>
> statistic msgPersistDequeues 0
> 0 0
>
> statistic msgDepth 0
> 2 0
>
> statistic byteDepth 0 octets
> 270 0
>
> statistic byteTotalEnqueues 0
> 100204 15667
>
> statistic byteTotalDequeues 0
> 99934 15667
>
> statistic byteTxnEnqueues 0
> 0 0
>
> statistic byteTxnDequeues 0
> 0 0
>
> statistic bytePersistEnqueues 0
> 0 0
>
> statistic bytePersistDequeues 0
> 0 0
>
> statistic consumerCount 0 consumers
> 1 1
>
> statistic consumerCountHigh 0
> 1 1
>
> statistic consumerCountLow 0
> 0 0
>
> statistic bindingCount 2 bindings
> 3 2
>
> statistic bindingCountHigh 2
> 3 2
>
> statistic bindingCountLow 2
> 0 0
>
> statistic unackedMessages 0 messages
> 0 0
>
> statistic unackedMessagesHigh 0
> 0 0
>
> statistic unackedMessagesLow 0
> 0 0
>
> statistic messageLatencySamples 0
> 0 0
>
> statistic messageLatencyMin 0
> 0 0
>
> statistic messageLatencyMax 0
> 0 0
>
> statistic messageLatencyAverage 0
> 0 0
>
>
>
> So the exchange reflects that a message has been published but the
queue
> does not reflect that it was routed the message. Anyone know what I
am
> doing wrong?
>
>
>
>
>
For what it's worth: There's a much more compact way to get exchange
and queue statistics. You can use "qpid-stat -e" and "qpid-stat -q" to
get exchange and queue stats respectively.
That said, this looks a bit strange. It appears that test.exchange
claims to have routed (not dropped) one message. It only has one
binding but the bound queue has received no messages.
You can also look at the binding in qpid-tool. It counts messages that
match.
-Ted
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:users-subscribe@qpid.apache.org
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:users-subscribe@qpid.apache.org
Re: Exchange Routing Troubles
Posted by Ted Ross <tr...@redhat.com>.
On 11/17/2010 01:13 PM, Thomas Nguyen wrote:
> Hello,
>
>
>
> I am testing QPID for the first time and am having trouble with messages
> being routed from an exchange to a queue. I am using a C++ broker and
> the Java client to publish messages. First off here is my initial
> exchange and queue setup:
>
>
>
> -bash-3.2$ ./qpid-config add exchange topic test.exchange --durable
>
> -bash-3.2$ ./qpid-config add queue test.queue --durable
>
> -bash-3.2$ ./qpid-config bind test.exchange test.queue routingKey
>
>
>
> -bash-3.2$ ./qpid-config exchanges -b
>
> Exchange '' (direct)
>
> bind [test.queue] => test.queue
>
> bind [reply-myhost.com.19752.1] => reply-myhost.com.19752.1
>
> bind [topic-myhost.com.19752.1] => topic-myhost.com.19752.1
>
> Exchange 'qpid.management' (topic)
>
> bind [schema.#] => topic-myhost.com.19752.1
>
> bind [console.obj.*.*.org.apache.qpid.broker.agent] =>
> topic-myhost.com.19752.1
>
> Exchange 'amq.direct' (direct)
>
> bind [reply-myhost.com.19752.1] => reply-myhost.com.19752.1
>
> Exchange 'amq.topic' (topic)
>
> Exchange 'amq.fanout' (fanout)
>
> Exchange 'amq.match' (headers)
>
> Exchange 'test.exchange' (topic)
>
> bind [routingKey] => test.queue
>
>
>
> -bash-3.2$ ./qpid-config queues -b
>
> Queue 'test.queue'
>
> bind [test.queue] => ''
>
> bind [routingKey] => test.exchange
>
> Queue 'reply-myhost.com.19794.1'
>
> bind [reply-myhost.com.19794.1] => ''
>
> bind [reply-myhost.com.19794.1] => amq.direct
>
> Queue 'topic-myhost.com.19794.1'
>
> bind [topic-myhost.com.19794.1] => ''
>
> bind [schema.#] => qpid.management
>
> bind [console.obj.*.*.org.apache.qpid.broker.agent] =>
> qpid.management
>
> -bash-3.2$
>
>
>
> I'm only concerned with the 'test.exchange' exchange and 'test.queue'
> queue. After setting up the exchange and queue I send a message to the
> exchange using the Java client and expect to find the 'test.queue' has a
> new message. The Java code I run is pasted here:
> http://pastie.org/1304220. Here is the status of the exchange and queue
> using qpid-tool after publishing a message to the exchange:
>
>
>
> qpid: show org.apache.qpid.broker:exchange
>
> Object of type org.apache.qpid.broker:exchange: (last sample time:
> 23:44:11)
>
> Type Element 104 105 106
> 107 108 109 110
>
>
> ========================================================================
> ============================================
>
> property vhostRef 103 103 103
> 103 103 103 103
>
> property name qpid.management amq.direct
> amq.topic amq.fanout amq.match test.exchange
>
> property type direct topic direct
> topic fanout headers topic
>
> property durable False False True
> True True True True
>
> property autoDelete False False False
> False False False False
>
> property altExchange<NULL> <NULL> <NULL>
> <NULL> <NULL> <NULL> <NULL>
>
> property arguments {} {} {}
> {} {} {} {}
>
> statistic producerCount 0 0 0 0
> 0 0 0
>
> statistic producerCountHigh 0 0 0 0
> 0 0 0
>
> statistic producerCountLow 0 0 0 0
> 0 0 0
>
> statistic bindingCount 3 2 1 0
> 0 0 1
>
> statistic bindingCountHigh 3 2 1 0
> 0 0 1
>
> statistic bindingCountLow 1 0 0 0
> 0 0 1
>
> statistic msgReceives 0 29551 6328 0
> 12 0 1
>
> statistic msgDrops 0 26164 7 0
> 4 0 0
>
> statistic msgRoutes 0 3387 6321 0
> 8 0 1
>
> statistic byteReceives 0 3648438 2121538 0
> 72 0 12
>
> statistic byteDrops 0 3179885 48 0
> 24 0 0
>
> statistic byteRoutes 0 468553 2121490 0
> 48 0 12
>
>
>
> qpid: show org.apache.qpid.broker:queue
>
> Object of type org.apache.qpid.broker:queue: (last sample time:
> 23:44:21)
>
> Type Element 111
> 112 113
>
>
> ========================================================================
> ========================================================================
> ==============================
>
> property vhostRef 103
> 103 103
>
> property name test.queue
> mgmt-myhost.com.19824 repl-myhost.com.19824
>
> property durable True
> False False
>
> property autoDelete False
> True True
>
> property exclusive False
> True True
>
> property arguments {u'qpid.file_size': 24L,
> u'qpid.file_count': 8L} {} {}
>
> property altExchange<NULL>
> <NULL> <NULL>
>
> statistic msgTotalEnqueues 0 messages
> 737 41
>
> statistic msgTotalDequeues 0
> 735 41
>
> statistic msgTxnEnqueues 0
> 0 0
>
> statistic msgTxnDequeues 0
> 0 0
>
> statistic msgPersistEnqueues 0
> 0 0
>
> statistic msgPersistDequeues 0
> 0 0
>
> statistic msgDepth 0
> 2 0
>
> statistic byteDepth 0 octets
> 270 0
>
> statistic byteTotalEnqueues 0
> 100204 15667
>
> statistic byteTotalDequeues 0
> 99934 15667
>
> statistic byteTxnEnqueues 0
> 0 0
>
> statistic byteTxnDequeues 0
> 0 0
>
> statistic bytePersistEnqueues 0
> 0 0
>
> statistic bytePersistDequeues 0
> 0 0
>
> statistic consumerCount 0 consumers
> 1 1
>
> statistic consumerCountHigh 0
> 1 1
>
> statistic consumerCountLow 0
> 0 0
>
> statistic bindingCount 2 bindings
> 3 2
>
> statistic bindingCountHigh 2
> 3 2
>
> statistic bindingCountLow 2
> 0 0
>
> statistic unackedMessages 0 messages
> 0 0
>
> statistic unackedMessagesHigh 0
> 0 0
>
> statistic unackedMessagesLow 0
> 0 0
>
> statistic messageLatencySamples 0
> 0 0
>
> statistic messageLatencyMin 0
> 0 0
>
> statistic messageLatencyMax 0
> 0 0
>
> statistic messageLatencyAverage 0
> 0 0
>
>
>
> So the exchange reflects that a message has been published but the queue
> does not reflect that it was routed the message. Anyone know what I am
> doing wrong?
>
>
>
>
>
For what it's worth: There's a much more compact way to get exchange
and queue statistics. You can use "qpid-stat -e" and "qpid-stat -q" to
get exchange and queue stats respectively.
That said, this looks a bit strange. It appears that test.exchange
claims to have routed (not dropped) one message. It only has one
binding but the bound queue has received no messages.
You can also look at the binding in qpid-tool. It counts messages that
match.
-Ted
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:users-subscribe@qpid.apache.org