1 21 22 package org.apache.derbyTesting.functionTests.tests.derbynet; 23 24 import java.sql.*; 25 import org.apache.derby.drda.NetworkServerControl; 26 import org.apache.derbyTesting.functionTests.util.TestUtil; 27 import java.net.InetAddress ; 28 import java.io.PrintWriter ; 29 30 public class NSinSameJVM { 31 32 private static final int NETWORKSERVER_PORT = 20000; 33 private String databaseFileName = "NSinSameJVMTestDB;create=true"; 34 35 public NSinSameJVM() { 36 37 try { 39 TestUtil.loadDriver(); 40 dbg("Derby drivers loaded"); 41 } catch (Exception e) { 42 e.printStackTrace(); 43 } 44 45 46 47 NetworkServerControl serverControl = null; 48 boolean started = false; 49 50 51 try { 52 53 serverControl = new 54 NetworkServerControl(InetAddress.getByName("0.0.0.0"), 55 NETWORKSERVER_PORT); 56 57 serverControl.start(new PrintWriter (System.out,true)); 58 59 for (int i = 1; i < 50; i++) 60 { 61 Thread.sleep(1000); 62 if (isServerStarted(serverControl)) 63 { 64 started = true; 65 break; 66 } 67 } 68 69 } catch (Exception e) 70 { 71 e.printStackTrace(); 72 } 73 if(started) 74 dbg("NetworkServer started"); 75 else 76 { 77 System.out.println("FAIL Network Server did not start"); 78 return; 79 } 80 String hostName = TestUtil.getHostName(); 81 String jdbcUrlPrefix = TestUtil.getJdbcUrlPrefix(hostName, NETWORKSERVER_PORT); 82 83 String url = jdbcUrlPrefix + databaseFileName; 84 85 Connection connection = null; 86 87 try { 88 connection = DriverManager.getConnection(url, "user", "password"); 90 Statement stmt = connection.createStatement(); 91 ResultSet rs = stmt.executeQuery("Select tablename from sys.systables"); 92 93 while (rs.next()) 94 { 95 rs.getString(1); 96 } 97 rs.close(); 98 dbg("Connected to database " + databaseFileName); 99 103 System.out.println("getting ready to shutdown"); 104 serverControl.shutdown(); 105 Thread.sleep(5000); 106 107 } catch (Exception e) { 108 System.out.print("FAIL: Unexpected exception" + e.getMessage()); 109 e.printStackTrace(); 110 } 111 112 114 } 115 116 private void dbg(String s) { 117 System.out.println(Thread.currentThread().getName() + "-NSinSameJVM: " + s); 118 } 119 120 public static void main(String [] args) { 121 new NSinSameJVM(); 122 } 123 124 private boolean isServerStarted(NetworkServerControl server) 125 { 126 try { 127 server.ping(); 128 } 129 catch (Exception e) { 130 return false; 131 } 132 return true; 133 } 134 } 135 136 137 138 139 140 | Popular Tags |