KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > h2 > test > synth > TestKillProcess


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.synth;
6
7 import java.sql.Connection JavaDoc;
8 import java.sql.DriverManager JavaDoc;
9 import java.sql.PreparedStatement JavaDoc;
10 import java.util.ArrayList JavaDoc;
11 import java.util.Random JavaDoc;
12
13 import org.h2.test.TestBase;
14 import org.h2.tools.FileBase;
15
16 public class TestKillProcess {
17     public static void main(String JavaDoc[] args) throws Exception JavaDoc {
18         try {
19             Class.forName("org.h2.Driver");
20             String JavaDoc url = args[0], user = args[1], password= args[2];
21             String JavaDoc BASE_DIR = args[3];
22             int accounts = Integer.parseInt(args[4]);
23             
24             Random JavaDoc random = new Random JavaDoc();
25             Connection JavaDoc conn1 = DriverManager.getConnection(url, user, password);
26             
27             PreparedStatement JavaDoc prep1a = conn1.prepareStatement("INSERT INTO LOG(ACCOUNTID, AMOUNT) VALUES(?, ?)");
28             PreparedStatement JavaDoc prep1b = conn1.prepareStatement("UPDATE ACCOUNT SET SUM=SUM+? WHERE ID=?");
29             conn1.setAutoCommit(false);
30             long time = System.currentTimeMillis();
31             String JavaDoc d = null;
32             for(int i=0; ; i++) {
33                 long t = System.currentTimeMillis();
34                 if(t > time + 1000) {
35                     ArrayList JavaDoc list = FileBase.getDatabaseFiles(BASE_DIR, "kill", true);
36                     System.out.println("inserting... i:"+i+" d:" + d+" files:" + list.size());
37                     time = t;
38                 }
39                 if(i>10000) {
40     // System.out.println("halt");
41
// Runtime.getRuntime().halt(0);
42
// conn.createStatement().execute("SHUTDOWN IMMEDIATELY");
43
// System.exit(0);
44
}
45                 int account = random.nextInt(accounts);
46                 int value = random.nextInt(100);
47                 prep1a.setInt(1, account);
48                 prep1a.setInt(2, value);
49                 prep1a.execute();
50                 prep1b.setInt(1, value);
51                 prep1b.setInt(2, account);
52                 prep1b.execute();
53                 conn1.commit();
54                 if(random.nextInt(100) < 2) {
55                     d = "D" + random.nextInt(1000);
56                     account = random.nextInt(accounts);
57                     conn1.createStatement().execute("UPDATE TEST_A SET DATA='" + d + "' WHERE ID=" + account);
58                     conn1.createStatement().execute("UPDATE TEST_B SET DATA='" + d + "' WHERE ID=" + account);
59                 }
60             }
61         } catch(Throwable JavaDoc e) {
62             TestBase.logError("error", e);
63         }
64     }
65     
66 }
67
Popular Tags