[ http://issues.apache.org/jira/browse/DERBY-899?page=all ]
Kathey Marsden updated DERBY-899: --------------------------------- Fix Version: 10.1.3.0 10.1.2.3 Description: >From a user using client XA. save points don't seem to be working with DerbyClient using XA. levels i am on: 10.1.2.2 Apache Derby Exception thrown is: Exception in thread "main" org.apache.derby.client.am.SqlException: SAVEPOINT, MyPoint does not exist or is not active in the current transaction. at org.apache.derby.client.am.Statement.completeSqlca(Unknown Source) at org.apache.derby.client.am.Statement.completeExecuteImmediate(Un known Source) at org.apache.derby.client.net.NetStatementReply.parseEXCSQLIMMrepl y(Unknown Source) at org.apache.derby.client.net.NetStatementReply.readExecuteImmedia te(Unknown Source) at org.apache.derby.client.net.StatementReply.readExecuteImmediate( Unknown Source) at org.apache.derby.client.net.NetStatement.readExecuteImmediate_(U nknown Source) at org.apache.derby.client.am.Statement.readExecuteImmediate(Unknow n Source) at org.apache.derby.client.am.Statement.flowExecute(Unknown Source) at org.apache.derby.client.am.Statement.executeX(Unknown Source) at org.apache.derby.client.am.Connection.rollback(Unknown Source) at org.apache.derby.client.am.LogicalConnection.rollback(Unknown Source) at Derby.networkServer.NSConnection.main(NSConnection.java:103) Test case below class SavePointProblem337977 { public static void main (String args [])throws Exception { //org.apache.derby.jdbc.ClientConnectionPoolDataSource ds = new org.apache.derby.jdbc.ClientConnectionPoolDataSource(); org.apache.derby.jdbc.ClientXADataSource ds = new org.apache.derby.jdbc.ClientXADataSource(); Connection conn = null; ds.setDatabaseName("e:\\temp\\sampl127;create=true"); XAConnection xaCon = ds.getXAConnection() ; //PooledConnection xaCon = ds.getPooledConnection() ; conn = xaCon.getConnection(); DatabaseMetaData md = conn.getMetaData() ; System.out.println(md.getDatabaseProductVersion()); System.out.println(md.getDatabaseProductName()); Statement st = null; PreparedStatement ps1 = null; try { st = conn.createStatement (); try { st.executeUpdate ("drop table TAB1"); }catch (SQLException x) { System.out.println ("no table exists"); } ps1 = conn.prepareStatement("CREATE TABLE TAB1(COL1 INT NOT NULL)"); ps1.executeUpdate(); conn.commit (); } catch (SQLException x) { System.out.println ("table already exists"); } conn.setAutoCommit(false); conn.createStatement().execute("update tab1 set col1 = -1 where col1 = 9"); Savepoint savepoint1 = conn.setSavepoint("MyPoint"); conn.rollback(savepoint1); } } was: save points don't seem to be working with DerbyClient using XA. levels i am on: 10.1.2.2 Apache Derby Exception thrown is: Exception in thread "main" org.apache.derby.client.am.SqlException: SAVEPOINT, MyPoint does not exist or is not active in the current transaction. at org.apache.derby.client.am.Statement.completeSqlca(Unknown Source) at org.apache.derby.client.am.Statement.completeExecuteImmediate(Un known Source) at org.apache.derby.client.net.NetStatementReply.parseEXCSQLIMMrepl y(Unknown Source) at org.apache.derby.client.net.NetStatementReply.readExecuteImmedia te(Unknown Source) at org.apache.derby.client.net.StatementReply.readExecuteImmediate( Unknown Source) at org.apache.derby.client.net.NetStatement.readExecuteImmediate_(U nknown Source) at org.apache.derby.client.am.Statement.readExecuteImmediate(Unknow n Source) at org.apache.derby.client.am.Statement.flowExecute(Unknown Source) at org.apache.derby.client.am.Statement.executeX(Unknown Source) at org.apache.derby.client.am.Connection.rollback(Unknown Source) at org.apache.derby.client.am.LogicalConnection.rollback(Unknown Source) at Derby.networkServer.NSConnection.main(NSConnection.java:103) Test case below class SavePointProblem337977 { public static void main (String args [])throws Exception { //org.apache.derby.jdbc.ClientConnectionPoolDataSource ds = new org.apache.derby.jdbc.ClientConnectionPoolDataSource(); org.apache.derby.jdbc.ClientXADataSource ds = new org.apache.derby.jdbc.ClientXADataSource(); Connection conn = null; ds.setDatabaseName("e:\\temp\\sampl127;create=true"); XAConnection xaCon = ds.getXAConnection() ; //PooledConnection xaCon = ds.getPooledConnection() ; conn = xaCon.getConnection(); DatabaseMetaData md = conn.getMetaData() ; System.out.println(md.getDatabaseProductVersion()); System.out.println(md.getDatabaseProductName()); Statement st = null; PreparedStatement ps1 = null; try { st = conn.createStatement (); try { st.executeUpdate ("drop table TAB1"); }catch (SQLException x) { System.out.println ("no table exists"); } ps1 = conn.prepareStatement("CREATE TABLE TAB1(COL1 INT NOT NULL)"); ps1.executeUpdate(); conn.commit (); } catch (SQLException x) { System.out.println ("table already exists"); } conn.setAutoCommit(false); conn.createStatement().execute("update tab1 set col1 = -1 where col1 = 9"); Savepoint savepoint1 = conn.setSavepoint("MyPoint"); conn.rollback(savepoint1); } } I have not actually looked at this issue yet but am keen to get it fixed quickly in 10.1. I plan to look it at right after DERBY-898. Any input is appreciated. > Cannot rollback to savepoint when using ClientXADataSource > ---------------------------------------------------------- > > Key: DERBY-899 > URL: http://issues.apache.org/jira/browse/DERBY-899 > Project: Derby > Type: Bug > Components: Network Client, Network Server > Versions: 10.1.1.0, 10.1.1.1 > Reporter: Kathey Marsden > Fix For: 10.2.0.0, 10.1.3.0, 10.1.2.3 > > From a user using client XA. > save points don't seem to be working with DerbyClient using > XA. > levels i am on: > 10.1.2.2 > Apache Derby > Exception thrown is: > Exception in thread "main" > org.apache.derby.client.am.SqlException: SAVEPOINT, MyPoint > does not exist or is not active in the current transaction. > at org.apache.derby.client.am.Statement.completeSqlca(Unknown > Source) > at > org.apache.derby.client.am.Statement.completeExecuteImmediate(Un > known Source) > at > org.apache.derby.client.net.NetStatementReply.parseEXCSQLIMMrepl > y(Unknown Source) > at > org.apache.derby.client.net.NetStatementReply.readExecuteImmedia > te(Unknown Source) > at > org.apache.derby.client.net.StatementReply.readExecuteImmediate( > Unknown Source) > at > org.apache.derby.client.net.NetStatement.readExecuteImmediate_(U > nknown Source) > at > org.apache.derby.client.am.Statement.readExecuteImmediate(Unknow > n Source) > at org.apache.derby.client.am.Statement.flowExecute(Unknown > Source) > at org.apache.derby.client.am.Statement.executeX(Unknown > Source) > at org.apache.derby.client.am.Connection.rollback(Unknown > Source) > at > org.apache.derby.client.am.LogicalConnection.rollback(Unknown > Source) > at > Derby.networkServer.NSConnection.main(NSConnection.java:103) > Test case below > class SavePointProblem337977 > { > > public static void main (String args [])throws Exception { > //org.apache.derby.jdbc.ClientConnectionPoolDataSource ds > = new org.apache.derby.jdbc.ClientConnectionPoolDataSource(); > org.apache.derby.jdbc.ClientXADataSource ds = new > org.apache.derby.jdbc.ClientXADataSource(); > > Connection conn = null; > ds.setDatabaseName("e:\\temp\\sampl127;create=true"); > XAConnection xaCon = ds.getXAConnection() ; > //PooledConnection xaCon = ds.getPooledConnection() ; > > > conn = xaCon.getConnection(); > > > DatabaseMetaData md = conn.getMetaData() ; > System.out.println(md.getDatabaseProductVersion()); > System.out.println(md.getDatabaseProductName()); > Statement st = null; > PreparedStatement ps1 = null; > try > { > st = conn.createStatement (); > try > { > st.executeUpdate ("drop table TAB1"); > }catch (SQLException x) > { > System.out.println ("no table exists"); > } > > ps1 = conn.prepareStatement("CREATE TABLE > TAB1(COL1 INT NOT NULL)"); > ps1.executeUpdate(); > conn.commit (); > } catch (SQLException x) > { > System.out.println ("table already exists"); > } > > > conn.setAutoCommit(false); > conn.createStatement().execute("update tab1 set col1 = > -1 where col1 = 9"); > Savepoint savepoint1 = conn.setSavepoint("MyPoint"); > conn.rollback(savepoint1); > } > } -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira