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