1 5 package org.h2.test.synth; 6 7 import java.sql.Connection ; 8 import java.sql.DriverManager ; 9 import java.sql.PreparedStatement ; 10 import java.util.ArrayList ; 11 import java.util.Random ; 12 13 import org.h2.test.TestBase; 14 import org.h2.tools.FileBase; 15 16 public class TestKillProcess { 17 public static void main(String [] args) throws Exception { 18 try { 19 Class.forName("org.h2.Driver"); 20 String url = args[0], user = args[1], password= args[2]; 21 String BASE_DIR = args[3]; 22 int accounts = Integer.parseInt(args[4]); 23 24 Random random = new Random (); 25 Connection conn1 = DriverManager.getConnection(url, user, password); 26 27 PreparedStatement prep1a = conn1.prepareStatement("INSERT INTO LOG(ACCOUNTID, AMOUNT) VALUES(?, ?)"); 28 PreparedStatement prep1b = conn1.prepareStatement("UPDATE ACCOUNT SET SUM=SUM+? WHERE ID=?"); 29 conn1.setAutoCommit(false); 30 long time = System.currentTimeMillis(); 31 String d = null; 32 for(int i=0; ; i++) { 33 long t = System.currentTimeMillis(); 34 if(t > time + 1000) { 35 ArrayList 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 } 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 e) { 62 TestBase.logError("error", e); 63 } 64 } 65 66 } 67 | Popular Tags |