Arnaud,

Not sure if the attachment got removed at some time, but I can't see it...

Anyway, before you start work on the Java Broker... I'm currently doing a
major refactoring so that we can run multiple versions in parallel - I'm
doing this on a separate branch for the moment, but would appreciate it if
the trunk code didn't change too much while I'm at it as it will make the
merge harder :-)  After my work is completed we'll be moving down the 0-9
support into the Java side, and then start working on 0-10 support.  dtx
will only be in AMQP 0-10, so really we should be aiming to do it with that
work... howevere,i f you're keen to get cracking straight away, maybe you
could start another branch, at least until the dust settles with M2 and
trunk.

-- Rob



On 26/03/07, Arnaud Simon <[EMAIL PROTECTED]> wrote:

Hello,

I have attached with this email a proposal for APIs that I expect to use
for dtx support. Those interfaces are the one I expect to implement on
the Java broker. The C++ broker may use some slightly different APIs but
they should semantically be very similar.
Those APIs have been designed to:
1) make a clean distinction between transaction manager, recovery
manager and persistence store.
2) Use whenever possible a direct mapping between dtx classes and
transaction manager methods. (you'll see that exceptions should be
mapped to channel close with the corresponding error code and results
can be returned straight ahead)
3) Use an unique way of identifying transactional work by only
propagating Xids all over the place. The underlying implementation can
keep the mapping between its tx context representation and Xids.

I would very much appreciate your comments.

For a synchronization purpose I am going to do the following unless it
clashes with somebody else's agenda:
- on the broker:
1) refactor the current code for supporting the proposed interfaces
2) add dtx classes support
3) extend current dbd code for dtx support
4) add support for dtx around a file based store
-on the client:
1) add dtx classes support
2) extend JMS implementation with XA capabilities

I should start with the broker (1, 2 and 3) then with the client and
finally do 4) on the broker.

Regards

Arnaud


Reply via email to