activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mats Forslöf <>
Subject RE: OpenWire tight/loose encoding
Date Thu, 16 Mar 2006 16:49:23 GMT
Hi Hiram

Thanks for the update. We have already selected the loose encoding as the default encoding
in the C++ client, it's good to see that we have selected the same. The tight encoding is
deferred to a future release since it is a bit more complicated and we wanted something up
and running. We're just finished a architectural re-design in the C++ client that makes a
lot less code to maintain and a bit easy to add other protocols (see previous posts regarding
C++ refactoring suggestion).

Will get back soon with a new patch udpate including updated groovy scripts.


-----Original Message-----
From: [] On Behalf Of Hiram Chirino
Sent: den 16 mars 2006 13:46
Subject: Re: OpenWire tight/loose encoding

Hi Mats!

On 3/16/06, Mats Forslöf <> wrote:
> Hi,
> We need some additional information on the OpenWire protocol to wrap up our work on the
C++ AMQ client.
> 1. To use loose encoding what do we have to do, is it simply to set the tight encoding
attribute to false on the OpenWireFormat package and then send each package attributes one
after each other?

OpenWire should always start up in loose encoding mode, in version 1 of the protocol, with
all options off by default.  This ensures backward compatibitlity since future clients will
beforced to be backward compatible to even start talking.  The clients then exchange a WireFormatInfo
which contains information about the highest version of the protocol and requested protocol
options that should be turned on.  After that exchange both sides can upgrade the version
and options to a set that is compatible between the 2 ends.

> 2. What determines the order of the attributes on each package? The order now seems to
be determined by the groovy scripts.

They are in the order that they were defined in the orifinal Java command classes.  The groovy
script just preserves the order.

> 3. What about the order of the boolean flags used in tight encoding, what does each position
stand for?

The bits in the BooleanStream are also serialized in the same order.

> I must ask you of some documentation on this because we cannot verify that our code is
correct otherwise.

Any time!  I guess we need to update the C++ guy to support loose encoding since that is now
the minimum requirement.  At least it's much simpler to implement.  Should I work on that
or have you guys allready have that covered?


> Please help!
> Regards,
> Mats Forslöf


View raw message