系统:CentOS 5.6
TPC-W 官方介绍:http://www.tpc.org/tpcw/
下载TPC-W(java版):http://pharm.ece.wisc.edu/tpcw/tpcw.tar.gz
解压缩后就是一个文件夹tpcw1.0
(说明:下面的操作命令大多都是在tpcw1.0所在目录下开始进行的)
安装与配置过程如下:
1.软件安装:
下载并安装JDK
http://www.oracle.com/technetwork/java/javase/downloads/index.html
安装版本:jdk-6u22-linux-i586.bin
路径:/usr/local/java
下载并安装Tomcat
安装版本:apache-tomcat-6.0.26.tar.gz
路径:/usr/local/apache-tomcat-6.0.26
安装MySQL服务器端
#yum install mysql-server
下载并配置JDBC MySQL驱动
http://dev.mysql.com/downloads/connector/j/
解压后复制mysql-connector-java-5.1.13-bin.jar到此路径下(目录不存在则自己创建):/usr/local/apache-tomcat-6.0.26/webapps/servlet/WEB-INF/lib
2.环境变量设置:
根据自己安装软件的路径在/etc/profile文件末尾添加:
export JAVA_HOME=/usr/local/java/jdk1.6.0_22
export CATALINA_HOME=/usr/local/apache-tomcat-6.0.26
export PATH=$JAVA_HOME/bin:$CATALINA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib/servlet-api.jar: $CATALINA_HOME/webapps/servlet/WEB-INF/lib/mysql-connector-java-5.1.13-bin.jar$CLASSPATH
重启或注销一下计算机,让环境变量生效
3.修改部分源码:
修改tpcw1.0\populate\populate_images
#!/usr/local/bin/perl ------> #!/usr/bin/perl
$DEST_DIR="/local_home/cain/Images"; ------> $DEST_DIR="/usr/local/apache-tomcat-6.0.26/webapps/tpcw/Images";
修改tpcw1.0\populate\TPCW_Populate.java
private static final String driverName = "com.mysql.jdbc.Driver";//"COM.ibm.db2.jdbc.app.DB2Driver";
private static final String dbName = "jdbc:mysql://localhost:3306/tpcw2";//"jdbc:db2:tpcw2";
PreparedStatement statement = con.prepareStatement
("INSERT INTO address(ADDR_ID,ADDR_STREET1,ADDR_STREET2,ADDR_CITY,ADDR_STATE,ADDR_ZIP,ADDR_CO_ID) VALUES (?, ?, ?, ?, ?, ?, ?)");
//myql是安装在linux上的,所以有大小写之分, 解决com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'tpcw2.ADDRESS'
try {
Class.forName(driverName);
con = DriverManager.getConnection(dbName, "root", "");//(dbName);
con.setAutoCommit(false);//解决java.sql.SQLException: Can't call commit when autocommit=true
}
修改tpcw1.0\servlets\TPCW_Database.java
static String driverName = "com.mysql.jdbc.Driver";//"COM.ibm.db2.jdbc.app.DB2Driver";
static String jdbcPath = "jdbc:mysql://localhost:3306/tpcw2";//"jdbc:db2:tpcw2";
private static final boolean use_connection_pool = false; //true;
try {
Class.forName(driverName).newInstance();//Class.forName(driverName);
// Class.forName("postgresql.Driver");
// Create URL for specifying a DBMS
Connection con;
while(true) {
try {
// con = DriverManager.getConnection("jdbc:postgresql://eli.ece.wisc.edu/tpcw", "milo", "");
con = DriverManager.getConnection(jdbcPath, "root", "");//con = DriverManager.getConnection(j