1 21 22 package org.apache.derbyTesting.functionTests.tests.store; 23 import java.sql.Connection ; 24 import java.sql.SQLException ; 25 import org.apache.derby.tools.ij; 26 import org.apache.derby.iapi.services.sanity.SanityManager; 27 28 38 39 public class MaxLogNumberRecovery extends MaxLogNumber { 40 41 MaxLogNumberRecovery() { 42 super(); 43 } 44 45 private void runTest(Connection conn) throws SQLException { 46 logMessage("Begin MaxLogNumberRecovery Test"); 47 verifyData(conn, 100); 48 boolean hitMaxLogLimitError = false; 49 try{ 50 insert(conn, 110, COMMIT, 11); 51 update(conn, 110, ROLLBACK, 5); 52 update(conn, 110, NOACTION, 5); 53 verifyData(conn, 210); 54 if (SanityManager.DEBUG) 55 { 56 insert(conn, 11000, COMMIT, 5); 60 } 61 } catch(SQLException se) { 62 63 SQLException ose = se; 64 while (se != null) { 65 if ("XSLAK".equals(se.getSQLState())) { 66 hitMaxLogLimitError = true; 67 break; 68 } 69 se = se.getNextException(); 70 } 71 if(!hitMaxLogLimitError) 72 throw ose; 73 } 74 75 if (SanityManager.DEBUG) 76 { 77 if(!hitMaxLogLimitError) 80 logMessage("Expected: ERROR XSLAK:" + 81 "Database has exceeded largest log file" + 82 "number 8,589,934,591."); 83 } 84 85 logMessage("End MaxLogNumberRecovery Test"); 86 } 87 88 89 public static void main(String [] argv) throws Throwable { 90 91 MaxLogNumberRecovery test = new MaxLogNumberRecovery(); 92 ij.getPropertyArg(argv); 93 Connection conn = ij.startJBMS(); 94 conn.setAutoCommit(false); 95 96 try { 97 test.runTest(conn); 98 } 99 catch (SQLException sqle) { 100 org.apache.derby.tools.JDBCDisplayUtil.ShowSQLException( 101 System.out, sqle); 102 sqle.printStackTrace(System.out); 103 } 104 } 105 } 106 | Popular Tags |