/*
* Copyright 2004-2011 H2 Group. Multiple-Licensed under the H2 License,
* Version 1.0, and under the Eclipse Public License, Version 1.0
* (http://h2database.com/html/license.html).
* Initial Developer: H2 Group
*/
package org.h2.test.synth.thread;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import org.h2.test.TestBase;
/**
* Starts multiple threads and performs random operations on each thread.
*/
public class TestMulti extends TestBase {
/**
* If set, the test should stop.
*/
public volatile boolean stop;
/**
* Run just this test.
*
* @param a ignored
*/
public static void main(String... a) throws Exception {
TestBase.createCaller().init().test();
}
public void test() throws Exception {
org.h2.Driver.load();
deleteDb("openClose");
// int len = getSize(5, 100);
int len = 10;
TestMultiThread[] threads = new TestMultiThread[len];
for (int i = 0; i < len; i++) {
threads[i] = new TestMultiNews(this);
}
threads[0].first();
for (int i = 0; i < len; i++) {
threads[i].start();
}
Thread.sleep(10000);
this.stop = true;
for (int i = 0; i < len; i++) {
threads[i].join();
}
threads[0].finalTest();
}
Connection getConnection() throws SQLException {
final String url = "jdbc:h2:" + getBaseDir() + "/openClose;LOCK_MODE=3;DB_CLOSE_DELAY=-1";
Connection conn = DriverManager.getConnection(url, "sa", "");
return conn;
}
}