Hi Erik,

The difference comes about in part due to the new client implementing
the AMQP JMS Mapping work progressing at the AMQP Bindings & Mappings
TC at OASIS, while the old client does not.

We aimed to allow the JMSMessageID and JMSCorrelationID handling to be
able to handle the 4 different message and correlation id types
defined in AMQP 1.0 (string, UUID, binary, and unsigned long) and
support an arriving message JMSMessageID being roundtripped through
the application and back into a JMS message as a JMSCorrelationID
value and lead to the appropriate value being included as the
correlation-id in the outgoing AMQP message.

JMS allows for the JMSCorrelationId header to be either a JMSMessageID
value, signalled by starting with "ID:", or an application-specific
string (or a seperate set of bytes methods, which we will ignore for
now). As part of handling this, and to allow for other clients that
dont want to have to add/remove the weird "ID:" prefix when doing a
messageid->correlationid interaction with the JMS client, we elected
to have the client always strip the first "ID:" prefix from the
provided correlaion value when sending it on the wire (also needed to
support round-tripping the non-string id types from message id and
back through correlation id as a string), and used a message
annotation to signal if it was an application-specific value that
didnt have the "ID:" prefix originally. When receiving, that
annotation is then queried to indicate if the value should not have
the "ID:" prefixed to it.

It would seem you are receving messages from a different client than
the new JMS client, created from different message objects such that
they have a correlation-id but dont have the annotation, leading to
the client to add the prefix on receipt. I'll need to have a think
around whether we can just invert the annotation usage to cater for
that or if someone else would be needed.

Robbie

On 4 June 2015 at 12:38, Erik Aschenbrenner <[email protected]> wrote:
> Dear Qpid users,
>
> here is another difference I noticed between the old and the new client API:
>
> The correlation ID of a received message which can be obtained via (JMS)
> Message.getJMSCorrelationID() now has the prefix "ID:". So I had to change
> my code because my application uses this ID to map between sent requests and
> received responses.
>
> Why did this change? It would have been great if changing the Qpid client
> would have worked without changing code at all because actually the
> interface is still JMS.
>
> Regards,
> Erik
>
>
>
> --
> View this message in context: 
> http://qpid.2158936.n2.nabble.com/Changing-from-old-Qpid-JMS-client-to-Qpid-JMS-0-2-0-tp7625652p7625829.html
> Sent from the Apache Qpid users mailing list archive at Nabble.com.
>
> ---------------------------------------------------------------------
> 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