1 21 22 package org.apache.derbyTesting.functionTests.tests.store; 23 24 import java.io.File ; 25 import java.sql.Connection ; 26 import java.sql.SQLException ; 27 import java.sql.Statement ; 28 import java.util.Properties ; 29 30 import javax.sql.DataSource ; 31 32 import org.apache.derby.tools.ij; 33 import org.apache.derbyTesting.functionTests.util.TestUtil; 34 35 51 52 public class TurnsReadOnly 53 { 54 55 public static void main(String [] argv) throws Throwable 56 { 57 try { 58 ij.getPropertyArg(argv); 59 Connection conn = ij.startJBMS(); 60 conn.setAutoCommit(true); 61 System.out.println("Database has been booted."); 62 63 Statement s = conn.createStatement(); 64 s.execute("CREATE TABLE t1(a INT)"); 65 System.out.println("Table t1 created."); 66 67 Properties shutdownAttrs = new Properties (); 69 shutdownAttrs.setProperty("shutdownDatabase", "shutdown"); 70 System.out.println("Shutting down database ..."); 71 try { 72 DataSource ds = TestUtil.getDataSource(shutdownAttrs); 73 ds.getConnection(); 74 } catch(SQLException se) { 75 if (se.getSQLState() != null 76 && se.getSQLState().equals("XJ015")) { 77 System.out.println("Database shutdown completed"); 78 } else { 79 throw se; 80 } 81 } 82 83 String derbyHome = System.getProperty("derby.system.home"); 85 File dbDir = new File (derbyHome, "wombat"); 86 dbDir.setReadOnly(); 87 88 conn = ij.startJBMS(); 90 conn.setAutoCommit(true); 91 System.out.println("Database has been booted."); 92 s = conn.createStatement(); 93 try { 94 s.execute("INSERT INTO t1 VALUES(1)"); 95 } catch(SQLException se) { 96 if (se.getSQLState() != null 97 && se.getSQLState().equals("25502")) { 98 System.out.println("Database is read-only"); 99 } else { 100 throw se; 101 } 102 } 103 104 } catch (SQLException sqle) { 105 org.apache.derby.tools.JDBCDisplayUtil.ShowSQLException(System.out, 106 sqle); 107 sqle.printStackTrace(System.out); 108 } 109 } 110 } 111 | Popular Tags |