KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > h2 > test > poweroff > Test


1 /*
2  * Copyright 2004-2006 H2 Group. Licensed under the H2 License, Version 1.0 (http://h2database.com/html/license.html).
3  * Initial Developer: H2 Group
4  */

5 package org.h2.test.poweroff;
6
7 import java.io.DataOutputStream JavaDoc;
8 import java.io.File JavaDoc;
9 import java.io.FileDescriptor JavaDoc;
10 import java.io.RandomAccessFile JavaDoc;
11 import java.net.Socket JavaDoc;
12 import java.sql.Connection JavaDoc;
13 import java.sql.DriverManager JavaDoc;
14 import java.sql.PreparedStatement JavaDoc;
15 import java.sql.ResultSet JavaDoc;
16 import java.sql.SQLException JavaDoc;
17 import java.sql.Statement JavaDoc;
18
19 import org.h2.util.FileUtils;
20
21 public class Test {
22
23     String JavaDoc driver;
24     String JavaDoc url;
25     String JavaDoc user;
26     String JavaDoc password;
27     Connection JavaDoc conn;
28     Statement JavaDoc stat;
29     PreparedStatement JavaDoc prep;
30
31     private Test() {
32     }
33
34     private Test(String JavaDoc driver, String JavaDoc url, String JavaDoc user, String JavaDoc password, boolean writeDelay0) {
35         this.driver = driver;
36         this.url = url;
37         this.user = user;
38         this.password = password;
39         try {
40             Class.forName(driver);
41             conn = DriverManager.getConnection(url, user, password);
42             stat = conn.createStatement();
43             if(writeDelay0) {
44                 stat.execute("SET WRITE_DELAY 0");
45             }
46             System.out.println(url +" started");
47         } catch(Exception JavaDoc e) {
48             System.out.println(url +": " + e.toString());
49             return;
50         }
51         try {
52             ResultSet JavaDoc rs = stat.executeQuery("SELECT MAX(ID) FROM TEST");
53             rs.next();
54             System.out.println(url+": MAX(ID)=" + rs.getInt(1));
55             stat.execute("DROP TABLE TEST");
56         } catch(SQLException JavaDoc e) {
57             // ignore
58
}
59         try {
60             stat.execute("CREATE TABLE TEST(ID INT PRIMARY KEY, NAME VARCHAR(255))");
61             prep = conn.prepareStatement("INSERT INTO TEST VALUES(?, ?)");
62         } catch(SQLException JavaDoc e) {
63             System.out.println(url +": " + e.toString());
64         }
65     }
66
67     private void insert(int id) {
68         try {
69             if(prep != null) {
70                 prep.setInt(1, id);
71                 prep.setString(2, "World " + id);
72                 prep.execute();
73             }
74         } catch(SQLException JavaDoc e) {
75             System.out.println(url +": " + e.toString());
76         }
77     }
78
79     public static void main(String JavaDoc[] args) throws Exception JavaDoc {
80         new Test().test(args);
81     }
82
83     void test(String JavaDoc[] args) throws Exception JavaDoc {
84         int port = 9099;
85         String JavaDoc connect = "192.168.0.3";
86         boolean file = false;
87         for (int i = 0; i < args.length; i++) {
88             if (args[i].equals("-port")) {
89                 port = Integer.parseInt(args[++i]);
90             } else if (args[i].equals("-connect")) {
91                 connect = args[++i];
92             } else if (args[i].equals("-file")) {
93                 file = true;
94             }
95         }
96         test(connect, port, file);
97     }
98
99     void test(String JavaDoc connect, int port, boolean file) throws Exception JavaDoc {
100         Socket JavaDoc socket = new Socket JavaDoc(connect, port);
101         DataOutputStream JavaDoc out = new DataOutputStream JavaDoc(socket.getOutputStream());
102         System.out.println("Connected to " + socket.toString());
103         if (file) {
104             testFile(out);
105         } else {
106             testDatabases(out);
107         }
108     }
109
110     void testFile(DataOutputStream JavaDoc out) throws Exception JavaDoc {
111         File JavaDoc file = new File JavaDoc("test.txt");
112         if (file.exists()) {
113             file.delete();
114         }
115         RandomAccessFile JavaDoc write = new RandomAccessFile JavaDoc(file, "rws");
116         // RandomAccessFile write = new RandomAccessFile(file, "rwd");
117
int fileSize = 10 * 1024 * 1024;
118         FileUtils.setLength(write, fileSize);
119         write.seek(0);
120         int i = 0;
121          FileDescriptor JavaDoc fd = write.getFD();
122         while (true) {
123             if (write.getFilePointer() >= fileSize) {
124                 break;
125             }
126             write.writeBytes(i + "\r\n");
127             fd.sync();
128             out.writeInt(i);
129             out.flush();
130             i++;
131         }
132         write.close();
133     }
134
135     void testDatabases(DataOutputStream JavaDoc out) throws Exception JavaDoc {
136         Test[] dbs = new Test[] {
137             new Test("org.h2.Driver", "jdbc:h2:test1", "sa", "", true),
138             new Test("org.h2.Driver", "jdbc:h2:test2", "sa", "", false),
139             new Test("org.hsqldb.jdbcDriver", "jdbc:hsqldb:test4", "sa", "", false),
140 // new Test("com.mysql.jdbc.Driver", "jdbc:mysql://localhost/test", "sa", ""),
141
new Test("org.postgresql.Driver", "jdbc:postgresql:test", "sa", "sa", false),
142             new Test("org.apache.derby.jdbc.EmbeddedDriver", "jdbc:derby:test;create=true", "sa", "", false),
143             new Test("org.h2.Driver", "jdbc:h2:test5", "sa", "", true),
144             new Test("org.h2.Driver", "jdbc:h2:test6", "sa", "", false),
145         };
146         for(int i=0; ; i++) {
147             for(int j=0; j<dbs.length; j++) {
148                 dbs[j].insert(i);
149             }
150             out.writeInt(i);
151             out.flush();
152         }
153     }
154
155 }
156
Popular Tags