You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by dj...@apache.org on 2006/02/24 01:52:41 UTC

svn commit: r380288 - in /db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests: master/DerbyNetClient/jdk14/XATest.out master/XATest.out suites/derbynetclientmats.runall tests/jdbcapi/XATest.java

Author: djd
Date: Thu Feb 23 16:52:39 2006
New Revision: 380288

URL: http://svn.apache.org/viewcvs?rev=380288&view=rev
Log:
DERBY-434 Enable jdbcapi/XATest.java to be run under client. Several bugs exist and
are noted in the test or its output. All of these bugs are entered in Jira.

Added:
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/jdk14/XATest.out   (with props)
Modified:
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/XATest.out
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/derbynetclientmats.runall
    db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/XATest.java

Added: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/jdk14/XATest.out
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/jdk14/XATest.out?rev=380288&view=auto
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/jdk14/XATest.out (added)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/jdk14/XATest.out Thu Feb 23 16:52:39 2006
@@ -0,0 +1,195 @@
+initial Connection holdable HOLD_CURSORS_OVER_COMMIT 1
+singleConnectionOnePhaseCommit
+XA Connection holdable CLOSE_CURSORS_AT_COMMIT 2
+XA Statement holdable CLOSE_CURSORS_AT_COMMIT 2
+A          
+-----
+0          
+GXID |STATUS |READONLY |USERNAME |TYPE                          
+-----
+(0 |ACTIVE |false |APP |UserTransaction               
+interleavingTransactions
+GXID |STATUS |READONLY |USERNAME |TYPE                          
+-----
+(1 |ACTIVE |false |SKU |UserTransaction               
+(2 |ACTIVE |false |SKU |UserTransaction               
+GXID |STATUS |READONLY |USERNAME |TYPE                          
+-----
+(1 |ACTIVE |false |SKU |UserTransaction               
+(2 |ACTIVE |false |SKU |UserTransaction               
+GXID |STATUS |READONLY |USERNAME |TYPE                          
+-----
+(1 |PREPARED |false |SKU |UserTransaction               
+(2 |PREPARED |false |SKU |UserTransaction               
+recovered start 2
+recovered 0
+recovered end 0
+GXID |STATUS |READONLY |USERNAME |TYPE                          
+-----
+(3 |IDLE |NULL |SKU |UserTransaction               
+A          
+-----
+0          
+1          
+3          
+noTransaction
+morph
+GXID |STATUS |READONLY |USERNAME |TYPE                          
+-----
+GXID |STATUS |READONLY |USERNAME |TYPE                          
+-----
+GXID |STATUS |READONLY |USERNAME |TYPE                          
+-----
+(1 |IDLE |NULL |APP |UserTransaction               
+EXPECTED SQLSTATE(XJ05C): Cannot set holdability ResultSet.HOLD_CURSORS_OVER_COMMIT for a global transaction.
+Statement created in global has holdabilty: false
+A          
+-----
+2001       
+2002       
+2003       
+DERBY-1004 Call conn.close to avoid exception with client
+GXID |STATUS |READONLY |USERNAME |TYPE                          
+-----
+(1 |PREPARED |false |APP |UserTransaction               
+(1 |IDLE |NULL |APP |UserTransaction               
+GXID |STATUS |READONLY |USERNAME |TYPE                          
+-----
+A          
+-----
+2001       
+2002       
+2003       
+2005       
+2007       
+A          
+-----
+DERBY-1004 Call conn.rollback to avoid exception with client
+A          
+-----
+2001       
+2002       
+2003       
+2005       
+2007       
+Correct XAException on starting a global transaction with an active local transaction (autocommit false)
+DERBY-341 - Client skipping XAConnection with active local transaction
+A          
+-----
+A          
+-----
+2001       
+2002       
+2003       
+2005       
+2007       
+derby966
+Local Connection holdable HOLD_CURSORS_OVER_COMMIT 1
+Local(held) default Statement holdable HOLD_CURSORS_OVER_COMMIT 1
+FAIL - mismatched statement & Connection
+ResultSet HOLD_CURSORS_OVER_COMMIT 1
+  BC A=0
+  AC A=1
+  AC A=3
+  AC A=2001
+  AC A=2002
+  AC A=2003
+  AC A=2005
+  AC A=2007
+Local(held) default PreparedStatement holdable HOLD_CURSORS_OVER_COMMIT 1
+FAIL - mismatched statement & Connection
+ResultSet HOLD_CURSORS_OVER_COMMIT 1
+  BC A=0
+  AC A=1
+  AC A=3
+  AC A=2001
+  AC A=2002
+  AC A=2003
+  AC A=2005
+  AC A=2007
+Local(held) held Statement holdable HOLD_CURSORS_OVER_COMMIT 1
+FAIL - mismatched statement & Connection
+ResultSet HOLD_CURSORS_OVER_COMMIT 1
+  BC A=0
+  AC A=1
+  AC A=3
+  AC A=2001
+  AC A=2002
+  AC A=2003
+  AC A=2005
+  AC A=2007
+Local(held) held PreparedStatement holdable HOLD_CURSORS_OVER_COMMIT 1
+FAIL - mismatched statement & Connection
+ResultSet HOLD_CURSORS_OVER_COMMIT 1
+  BC A=0
+  AC A=1
+  AC A=3
+  AC A=2001
+  AC A=2002
+  AC A=2003
+  AC A=2005
+  AC A=2007
+Local(held) close Statement holdable CLOSE_CURSORS_AT_COMMIT 2
+FAIL - mismatched statement & Connection
+ResultSet CLOSE_CURSORS_AT_COMMIT 2
+  BC A=0
+Non-held ResultSet correctly closed after commit
+Local(held) close PreparedStatement holdable CLOSE_CURSORS_AT_COMMIT 2
+FAIL - mismatched statement & Connection
+ResultSet CLOSE_CURSORS_AT_COMMIT 2
+  BC A=0
+Non-held ResultSet correctly closed after commit
+Local(close) default Statement holdable CLOSE_CURSORS_AT_COMMIT 2
+FAIL - mismatched statement & Connection
+ResultSet CLOSE_CURSORS_AT_COMMIT 2
+  BC A=0
+Non-held ResultSet correctly closed after commit
+Local(close) default PreparedStatement holdable CLOSE_CURSORS_AT_COMMIT 2
+FAIL - mismatched statement & Connection
+ResultSet CLOSE_CURSORS_AT_COMMIT 2
+  BC A=0
+Non-held ResultSet correctly closed after commit
+Local(close) held Statement holdable HOLD_CURSORS_OVER_COMMIT 1
+FAIL - mismatched statement & Connection
+ResultSet HOLD_CURSORS_OVER_COMMIT 1
+  BC A=0
+  AC A=1
+  AC A=3
+  AC A=2001
+  AC A=2002
+  AC A=2003
+  AC A=2005
+  AC A=2007
+Local(close) held PreparedStatement holdable HOLD_CURSORS_OVER_COMMIT 1
+FAIL - mismatched statement & Connection
+ResultSet HOLD_CURSORS_OVER_COMMIT 1
+  BC A=0
+  AC A=1
+  AC A=3
+  AC A=2001
+  AC A=2002
+  AC A=2003
+  AC A=2005
+  AC A=2007
+Local(close) close Statement holdable CLOSE_CURSORS_AT_COMMIT 2
+FAIL - mismatched statement & Connection
+ResultSet CLOSE_CURSORS_AT_COMMIT 2
+  BC A=0
+Non-held ResultSet correctly closed after commit
+Local(close) close PreparedStatement holdable CLOSE_CURSORS_AT_COMMIT 2
+FAIL - mismatched statement & Connection
+ResultSet CLOSE_CURSORS_AT_COMMIT 2
+  BC A=0
+Non-held ResultSet correctly closed after commit
+BGBC 0
+BGAC 1
+DERBY-1025 Call conn.commit to avoid exception with client
+START GLOBAL TRANSACTION
+EXPECTED SQLSTATE(XJ05C): Cannot set holdability ResultSet.HOLD_CURSORS_OVER_COMMIT for a global transaction.
+EXPECTED SQLSTATE(XJ05C): Cannot set holdability ResultSet.HOLD_CURSORS_OVER_COMMIT for a global transaction.
+EXPECTED SQLSTATE(XJ05C): Cannot set holdability ResultSet.HOLD_CURSORS_OVER_COMMIT for a global transaction.
+EXPECTED SQLSTATE(XJ05C): Cannot set holdability ResultSet.HOLD_CURSORS_OVER_COMMIT for a global transaction.
+EXPECTED SQLSTATE(XJ05C): Cannot set holdability ResultSet.HOLD_CURSORS_OVER_COMMIT for a global transaction.
+EXPECTED SQLSTATE(XJ05C): Cannot set holdability ResultSet.HOLD_CURSORS_OVER_COMMIT for a global transaction.
+derby966 complete
+XATest complete

Propchange: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/DerbyNetClient/jdk14/XATest.out
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/XATest.out
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/XATest.out?rev=380288&r1=380287&r2=380288&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/XATest.out (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/master/XATest.out Thu Feb 23 16:52:39 2006
@@ -70,6 +70,7 @@
 2003       
 2005       
 2007       
+Correct XAException on starting a global transaction with an active local transaction (autocommit false)
 EXPECTED SQLSTATE(XJ059): Cannot close a connection while a global transaction is still active.
 A          
 -----------
@@ -125,19 +126,19 @@
 Local(held) close Statement holdable CLOSE_CURSORS_AT_COMMIT 2
 ResultSet CLOSE_CURSORS_AT_COMMIT 2
   BC A=0
-EXPECTED SQLSTATE(XCL16): ResultSet not open. Operation 'next' not permitted. Verify that autocommit is OFF.
+Non-held ResultSet correctly closed after commit
 Local(held) close PreparedStatement holdable CLOSE_CURSORS_AT_COMMIT 2
 ResultSet CLOSE_CURSORS_AT_COMMIT 2
   BC A=0
-EXPECTED SQLSTATE(XCL16): ResultSet not open. Operation 'next' not permitted. Verify that autocommit is OFF.
+Non-held ResultSet correctly closed after commit
 Local(close) default Statement holdable CLOSE_CURSORS_AT_COMMIT 2
 ResultSet CLOSE_CURSORS_AT_COMMIT 2
   BC A=0
-EXPECTED SQLSTATE(XCL16): ResultSet not open. Operation 'next' not permitted. Verify that autocommit is OFF.
+Non-held ResultSet correctly closed after commit
 Local(close) default PreparedStatement holdable CLOSE_CURSORS_AT_COMMIT 2
 ResultSet CLOSE_CURSORS_AT_COMMIT 2
   BC A=0
-EXPECTED SQLSTATE(XCL16): ResultSet not open. Operation 'next' not permitted. Verify that autocommit is OFF.
+Non-held ResultSet correctly closed after commit
 Local(close) held Statement holdable HOLD_CURSORS_OVER_COMMIT 1
 ResultSet HOLD_CURSORS_OVER_COMMIT 1
   BC A=0
@@ -161,11 +162,11 @@
 Local(close) close Statement holdable CLOSE_CURSORS_AT_COMMIT 2
 ResultSet CLOSE_CURSORS_AT_COMMIT 2
   BC A=0
-EXPECTED SQLSTATE(XCL16): ResultSet not open. Operation 'next' not permitted. Verify that autocommit is OFF.
+Non-held ResultSet correctly closed after commit
 Local(close) close PreparedStatement holdable CLOSE_CURSORS_AT_COMMIT 2
 ResultSet CLOSE_CURSORS_AT_COMMIT 2
   BC A=0
-EXPECTED SQLSTATE(XCL16): ResultSet not open. Operation 'next' not permitted. Verify that autocommit is OFF.
+Non-held ResultSet correctly closed after commit
 BGBC 0
 BGAC 1
 START GLOBAL TRANSACTION

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/derbynetclientmats.runall
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/derbynetclientmats.runall?rev=380288&r1=380287&r2=380288&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/derbynetclientmats.runall (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/suites/derbynetclientmats.runall Thu Feb 23 16:52:39 2006
@@ -2,3 +2,4 @@
 jdbcapi/xaSimplePositive.sql
 jdbcapi/xaStateTran.sql
 jdbcapi/lobStreams.java
+jdbcapi/XATest.java

Modified: db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/XATest.java
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/XATest.java?rev=380288&r1=380287&r2=380288&view=diff
==============================================================================
--- db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/XATest.java (original)
+++ db/derby/code/trunk/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/XATest.java Thu Feb 23 16:52:39 2006
@@ -618,8 +618,10 @@
             xar.end(xid2, XAResource.TMSUSPEND);
 
             // DERBY-1004
-            if (TestUtil.isDerbyNetClientFramework())
+            if (TestUtil.isDerbyNetClientFramework()) {
+                System.out.println("DERBY-1004 Call conn.close to avoid exception with client");
                 conn.close();
+            }
 
             /*
              -- get local connection again
@@ -684,8 +686,10 @@
             rs.close();
 
             // DERBY-1004
-            if (TestUtil.isDerbyNetClientFramework())
+            if (TestUtil.isDerbyNetClientFramework()) {
+                System.out.println("DERBY-1004 Call conn.rollback to avoid exception with client");
                 conn.rollback();
+            }
             /*
              -- yanking a local connection away should rollback the changes
              */
@@ -706,12 +710,11 @@
             Xid xid3 = XATestUtil.getXid(1003, 27, 9);
             try {
                 xar.start(xid3, XAResource.TMNOFLAGS);
+                System.out.println("FAIL XAResource.start on a global transaction with an active local transaction (autocommit false)");
             } catch (XAException xae) {
-                if ((xae.errorCode != XAException.XAER_OUTSIDE)
-                    &&
-                    // DERBY-1024
-                    (xae.errorCode != XAException.XAER_RMFAIL))
+                if (xae.errorCode != XAException.XAER_OUTSIDE)
                     throw xae;
+                System.out.println("Correct XAException on starting a global transaction with an active local transaction (autocommit false)");
             }
             conn.commit();
             xar.start(xid3, XAResource.TMNOFLAGS);
@@ -720,6 +723,9 @@
              -- now I shouldn't be able to yank it
              xa_getconnection;
              */
+            if (TestUtil.isDerbyNetClientFramework()) {
+                System.out.println("DERBY-341 - Client skipping XAConnection with active local transaction");              
+            } else {
             try {
                 xac.getConnection();
                 System.out
@@ -727,6 +733,7 @@
             } catch (SQLException sqle) {
                 TestUtil.dumpSQLExceptions(sqle, true);
             }
+            }
             /*
              select * from foo;
              delete from foo;
@@ -874,8 +881,10 @@
             // an implicit commit to complete the local transaction.
             
             // DERBY-1025 Client only bug
-            if (TestUtil.isDerbyNetClientFramework())
+            if (TestUtil.isDerbyNetClientFramework()) {
+                System.out.println("DERBY-1025 Call conn.commit to avoid exception with client");
                 conn.commit();
+            }
             System.out.println("START GLOBAL TRANSACTION");
             // start a global xact and test those statements.
             xar.start(xid, XAResource.TMNOFLAGS);
@@ -984,7 +993,21 @@
                System.out.println("FAIL: non-held cursor not closed by commit");
         } catch (SQLException sqle)
         {
-             TestUtil.dumpSQLExceptions(sqle, !held);
+            boolean ok = !held;
+            boolean showError = true;
+            if (ok) {
+                if (TestUtil.isEmbeddedFramework()) {
+                    if ("XCL16".equals(sqle.getSQLState()))
+                        showError = false;
+                } else if (TestUtil.isDerbyNetClientFramework()) {
+                    // No SQL state yet from client error.
+                    showError = false;
+                }
+            }
+            if (showError)
+                TestUtil.dumpSQLExceptions(sqle, ok);
+            else if (ok)
+                System.out.println("Non-held ResultSet correctly closed after commit");
         }
         
         rs.close();