S
spiderbug
Hello,
While using the Oracle (Java)XA interfaces, I came across this
situation-
1. Start a transaction, enlist the connection in it (Effectively get
an XAConnection from an XADataSource, get the XAresource and call
start on it with some Xid).
2. Perform some DB operations/queries on the java.sql.Connection
obtained from the XAConnection.
3. End the transaction (not commit it, just xaresource.end) - with
flag TM_SUCCESS
4. Perform some other operations/queries on the same JDBC connection
as in 2.
Operation (4) fails with the error - java.sql.SQLException: Not in a
transaction. Now my question is - since I've already demarcated the
transactional boundaries with the start and end calls on the
XAresource, why cannot I perform any other operations outside the
transaction even if I've not committed the tx? The JTA spec says these
two calls are supposed to do just that. Is it an Oracle specific
problem or am I missing a point here?
Thanks in advance
~spiderbug~
While using the Oracle (Java)XA interfaces, I came across this
situation-
1. Start a transaction, enlist the connection in it (Effectively get
an XAConnection from an XADataSource, get the XAresource and call
start on it with some Xid).
2. Perform some DB operations/queries on the java.sql.Connection
obtained from the XAConnection.
3. End the transaction (not commit it, just xaresource.end) - with
flag TM_SUCCESS
4. Perform some other operations/queries on the same JDBC connection
as in 2.
Operation (4) fails with the error - java.sql.SQLException: Not in a
transaction. Now my question is - since I've already demarcated the
transactional boundaries with the start and end calls on the
XAresource, why cannot I perform any other operations outside the
transaction even if I've not committed the tx? The JTA spec says these
two calls are supposed to do just that. Is it an Oracle specific
problem or am I missing a point here?
Thanks in advance
~spiderbug~