[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