Hi,

I would like to know why the SapDB JDBC driver exposes
the JTA XAResource interface. AFAIK, SapDB is not
XA-compliant and exposing this interface gives the
impression that it is.

Because SapDB is not XA-compliant, the implementation
of the XAResource interface provided by JDBC driver is
really unusable to me. 

A quick look at the source code reveals that the JDBC
driver has an in-memory transaction log that is used
during prepare, commit and recovery. But the XA spec
mandates that after a transaction has been prepared:
<quote>the resource manager must guarantee that the
transaction branch may be either committed or rolled
back regardless of failures</quote>.

Obviously, when the transaction log is in-memory, a
crash will erase all knowledge about prepared
transactions and your system will not be able to
recover properly. To me, this implementation defeats
the whole purpose of using the XA interface in the
first place.

I think that either the XA implementation should be
removed from the JDBC driver or it should be
documented that the provided XAResource interface does
*not* faithfully implement the XA spec.

Regards,

Robin Boerdijk

__________________________________________________
Do you Yahoo!?
Yahoo! Tax Center - forms, calculators, tips, more
http://taxes.yahoo.com/
_______________________________________________
sapdb.general mailing list
[EMAIL PROTECTED]
http://listserv.sap.com/mailman/listinfo/sapdb.general

Reply via email to