上篇文章 AIX平台上使用JAVA程序连接到DB2数据库 讲述了如何使用Java程序连接到Db2,但是只有一个连接。如果想进行压力测试/并发测试,可以使用Java的多线程,下面是代码示例(部分代码引自网络)
import java.sql.*;
class RunnableDemo implements Runnable {
private Thread t;
private String threadName;
RunnableDemo( String name) {
threadName = name;
System.out.println("Creating " + threadName );
}
public void run() {
try {
Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance();
String url = "jdbc:db2://localhost:60000/sample";
String user = "inst105";
String password = "inst105";
Connection conn = DriverManager.getConnection(url, user, password);
System.out.println("connect success");
PreparedStatement ps = conn.prepareStatement("select * from inst105.t2");
//System.out.println("prepare success, please collect trace ASAP!");
//Thread.sleep(15000);
while (true) {
try {
ResultSet rs = ps.executeQuery();
//System.out.println("Query success!");
} catch (Exception e) {
//System.out.println("Error occur");
}
//Thread.sleep(2000);
}
//conn.close();
} catch (Exception sqle) {
System.out.println(sqle);
}
}
public void start () {
System.out.println("Starting " + threadName );
if (t == null) {
t = new Thread (this, threadName);
t.start ();
}
}
}
public class TestThread {
public static void main(String args[]) {
for (int i=1; i <= 50; i++) {
String trdName = "Thread_" + i;
new RunnableDemo(trdName).start();
try {
Thread.sleep(100);
} catch (Exception e) {
}
}
}
}
然后使用Db2自带的java编译和执行即可。上面的例子中有50个并发连接,每个连接都在不停地执行SQL "select * from inst105.t2"