qpid-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sreuland <sh...@ereuland.com>
Subject c++ 0.10 client, java 0.10 broker, headers exchange not routing
Date Tue, 19 Jul 2011 02:30:59 GMT
Having a problem with c++ 0.10 client sending messages to a headers exchange
on a java 0.10 broker. Is this the correct method for c++ client to use when
appending ascii string header values to an amqp message?

qpid::messaging::Message.setProperty("xyz_header","XYZ123");

when this is done, the java broker log shows message received, but header
values look like object refs:

2011-07-18 18:03:10,233 DEBUG [MINANetworkDriver(Acceptor)-1] util.Logger
(Logger.java:54) - RECV: [conn:7ec9bbe6] ch=1
MessageTransfer(destination=uplink, acceptMode=NONE,
acquireMode=PRE_ACQUIRED)
  MessageProperties(contentLength=48, correlationId=[B@75e5143d,
contentType=, userId=[B@1293ed43,
applicationHeaders={xyz_header=[B@2dbdd33c})
  DeliveryProperties(routingKey=)
  body="blah blah blah"

at this point the message does not arrive in the queue that is bound to the
headers exchange for that header value. 

The exchange and queue are declared initially with address strings:

my_exch; {create: always, node: {type: topic, durable:'True', x-declare:
{auto-delete:'False', type:headers}}}

xyz_queue; {create: always,node: {type: queue, durable:'True',x-declare:
{auto-delete:'False', exchange:my_exch, type:headers},
x-bindings:[{queue:xyz_queue,exchange:'my_exch',arguments:{'x-match':any,'xyz_header':'XYZ123'}}]}}

However, I am able to use the java 0.10 jms client and when I set the
headers using javax.jms.Message.setStringProperty("xyz_header","xyz_value"),
the headers show up with correct value on java broker logs and the message
gets routed to the bound queue correctly.

Any thoughts here, it seems like the java 0.10 broker can't interop with c++
0.10 client that sends amqp headers along with message body. I have even
tried the reverse using c++ 0.10 broker with a java 0.10 jms client and the
headers message gets routed to the bound queue correctly in that case also.   

Incidentally on the 'my_exch' exchange declaration address string above,
even though I use durable:'True', the exchange disappears when the qpid
broker is restarted on either java or c++, how can you ensure that an
exchange remains durable using address string syntax? 

thanks for any info, regards,

Shawn 

--
View this message in context: http://apache-qpid-users.2158936.n2.nabble.com/c-0-10-client-java-0-10-broker-headers-exchange-not-routing-tp6597256p6597256.html
Sent from the Apache Qpid users mailing list archive at Nabble.com.

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:users-subscribe@qpid.apache.org


Mime
View raw message