[Mulgara-general] New JTA support now considered beta - please test and report success/failure to the list.

Andrae Muys andrae at netymon.com
Mon Jan 14 10:42:54 UTC 2008


With revision 625 I am finally satisfied that the new JTA interface  
is functionally complete and has been subjected to a reasonable  
number of tests.  This will allow Mulgara transactions to be  
synchronised with other databases which will provide an immediate  
solution to the problem of how to support BLOBS and other file/ 
document storage.  I would particularly like to thank the Topaz  
Foundation for their financial and logistical support that made this  
improvement feasible, it really is greatly appreciated.

Given the impact that changes to transaction code can have on  
stability I will feel much more comfortable if other people have  
tried it out before I merge the changes into trunk. I am therefore  
going to declare the mgr-73 branch 'in beta' for a week or two to  
give everyone a chance to try it out - and I'll spend some of that  
time writing documentation for the interface.

In the meantime the branch can be checked out of subversion at  
https://mulgara.org/svn/mulgara/branches/mgr-73.
Examples of the JTA interface in use can be found in the unit tests:
   src/jar/resolver/java/org/mulgara/resolver/ 
ExternalTransactionUnitTest.java
   src/jar/resolver/java/org/mulgara/resolver/ 
JotmTransactionStandaloneTest.java

The former is an example of an embedded application - the latter an  
rmi-based interprocess application.

In both cases the key change is to Session.java which now has two new  
methods:
   public XAResource getXAResource() throws QueryException;
   public XAResource getReadOnlyXAResource() throws QueryException;

The returned XAResource should be consistent with the Java  
Transaction API (v1.1).

It should however be noted that if these methods are ignored the  
existing transactional behaviour should be maintained, ie. this  
update should be fully backwards compatible.  However the old  
transaction interface and the JTA interface cannot be used on the  
same session.  If you wish to use the JTA interface your first call  
*must* be to one of the getXAResource methods - you can have  
different sessions using different interfaces on the same mulgara  
instance, but not both interfaces on a single session.

Again a big thank-you to Topaz, without whom this feature would not  
exist.

Andrae Muys

-- 
Andrae Muys
andrae at netymon.com
Senior RDF/SemanticWeb Consultant
Netymon Pty Ltd





More information about the Mulgara-general mailing list