TPC-W安装与配置(威斯康星大学Java版)

来自  http://blog.csdn.net/cybercode/article/details/6737415


系统: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

http://tomcat.apache.org/

安装版本: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

[java]  view plain copy
  1. private static final String driverName = "com.mysql.jdbc.Driver";//"COM.ibm.db2.jdbc.app.DB2Driver";  
  2. private static final String dbName = "jdbc:mysql://localhost:3306/tpcw2";//"jdbc:db2:tpcw2";  
[java]  view plain copy
  1. PreparedStatement statement = con.prepareStatement  
  2.         ("INSERT INTO address(ADDR_ID,ADDR_STREET1,ADDR_STREET2,ADDR_CITY,ADDR_STATE,ADDR_ZIP,ADDR_CO_ID) VALUES (?, ?, ?, ?, ?, ?, ?)");  
  3. //myql是安装在linux上的,所以有大小写之分, 解决com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'tpcw2.ADDRESS'  
[java]  view plain copy
  1. try {  
  2.         Class.forName(driverName);  
  3.         con = DriverManager.getConnection(dbName, "root""");//(dbName);  
  4.          con.setAutoCommit(false);//解决java.sql.SQLException: Can't call commit when autocommit=true  
  5.     }  
修改tpcw1.0\servlets\TPCW_Database.java
[java]  view plain copy
  1.  static String driverName = "com.mysql.jdbc.Driver";//"COM.ibm.db2.jdbc.app.DB2Driver";  
  2.  static String jdbcPath = "jdbc:mysql://localhost:3306/tpcw2";//"jdbc:db2:tpcw2";  

[java]  view plain copy
  1. private static final boolean use_connection_pool = false//true;  
[java]  view plain copy
  1. try {  
  2.          Class.forName(driverName).newInstance();//Class.forName(driverName);  
  3.         // Class.forName("postgresql.Driver");  
  4.   
  5.         // Create URL for specifying a DBMS  
  6.         Connection con;  
  7.         while(true) {  
  8.         try {  
  9.             //   con = DriverManager.getConnection("jdbc:postgresql://eli.ece.wisc.edu/tpcw", "milo", "");  
  10.             con = DriverManager.getConnection(jdbcPath, "root""");//con = DriverManager.getConnection(jdbcPath);  
  11.             break;    

(下面就是将Prepare SQL语句改成MySql语句,这里简写如下:)

[java]  view plain copy
  1. sql.getName="SELECT c_fname,c_lname FROM customer WHERE c_id = ?"  
  2.   
  3.   
  4. sql.getBook="SELECT * FROM item,author WHERE item.i_a_id = author.a_id AND i_id = ?"  
  5.   
  6.   
  7. sql.getCustomer="SELECT * FROM customer, address, country WHERE customer.c_addr_id = address.addr_id AND address.addr_co_id = country.co_id AND customer.c_uname = ?"  
  8.   
  9.   
  10. sql.doSubjectSearch="SELECT * FROM item, author WHERE item.i_a_id = author.a_id AND item.i_subject = ? ORDER BY item.i_title limit 50"  
  11.   
  12.   
  13. sql.doTitleSearch="SELECT * FROM item, author WHERE item.i_a_id = author.a_id AND substring(soundex(item.i_title),0,4)=substring(soundex(?),0,4) ORDER BY item.i_title limit 50"  
  14.   
  15.   
  16. sql.doAuthorSearch="SELECT * FROM author, item WHERE substring(soundex(author.a_lname),0,4)=substring(soundex(?),0,4) AND item.i_a_id = author.a_id ORDER BY item.i_title limit 50"  
  17.   
  18.   
  19. sql.getNewProducts="SELECT i_id, i_title, a_fname, a_lname " +\  
  20.          "FROM item, author " +\  
  21.          "WHERE item.i_a_id = author.a_id " +\  
  22.          "AND item.i_subject = ? " +\  
  23.          "ORDER BY item.i_pub_date DESC,item.i_title " +\  
  24.          "limit 50"  
  25.   
  26.   
  27. sql.getBestSellers="SELECT i_id, i_title, a_fname, a_lname " +\  
  28.          "FROM item, author, order_line " +\  
  29.          "WHERE item.i_id = order_line.ol_i_id " +\  
  30.          "AND item.i_a_id = author.a_id " +\  
  31.          "AND order_line.ol_o_id > (SELECT MAX(o_id)-3333 FROM orders) " +\  
  32.          "AND item.i_subject = ? " +\  
  33.          "GROUP BY i_id, i_title, a_fname, a_lname " +\  
  34.          "ORDER BY SUM(ol_qty) DESC " +\  
  35.          "limit 50"  
  36.   
  37.   
  38. sql.getRelated="SELECT J.i_id,J.i_thumbnail from item I, item J where (I.i_related1 = J.i_id or I.i_related2 = J.i_id or I.i_related3 = J.i_id or I.i_related4 = J.i_id or I.i_related5 = J.i_id) and I.i_id = ?"  
  39.   
  40.   
  41. sql.adminUpdate="UPDATE item SET i_cost = ?, i_image = ?, i_thumbnail = ?, i_pub_date = CURRENT_DATE WHERE i_id = ?"  
  42. sql.adminUpdate.related="SELECT ol_i_id " +\  
  43.          "FROM orders, order_line " + \  
  44.          "WHERE orders.o_id = order_line.ol_o_id " +\  
  45.          "AND NOT (order_line.ol_i_id = ?) " +\  
  46.          "AND orders.o_c_id IN (SELECT o_c_id " +\  
  47.          "                      FROM orders, order_line " +\  
  48.          "                      WHERE orders.o_id = order_line.ol_o_id " +\  
  49.          "                      AND orders.o_id > (SELECT MAX(o_id)-10000 FROM orders)" + \  
  50.          "                      AND order_line.ol_i_id = ?) " +\  
  51.          "GROUP BY ol_i_id " +\  
  52.          "ORDER BY SUM(ol_qty) DESC " +\  
  53.          "limit 5"  
  54. sql.adminUpdate.related1="UPDATE item SET i_related1 = ?, i_related2 = ?, i_related3 = ?, i_related4 = ?, i_related5 = ? WHERE i_id = ?"  
  55.   
  56.   
  57. sql.getUserName="SELECT c_uname FROM customer WHERE c_id = ?"  
  58.   
  59.   
  60. sql.getPassword="SELECT c_passwd FROM customer WHERE c_uname = ?"  
  61.   
  62.   
  63. sql.getRelated1="SELECT i_related1 FROM item where i_id = ?"  
  64.   
  65.   
  66. sql.getMostRecentOrder.id="SELECT o_id " +\  
  67.              "FROM customer, orders " +\  
  68.              "WHERE customer.c_id = orders.o_c_id " +\  
  69.              "AND c_uname = ? " +\  
  70.              "ORDER BY o_date, orders.o_id DESC " +\  
  71.              "limit 1"  
  72. sql.getMostRecentOrder.order="SELECT orders.*, customer.*, " +\  
  73.              "  cc_xacts.cx_type, " +\  
  74.              "  ship.addr_street1 AS ship_addr_street1, " +\  
  75.              "  ship.addr_street2 AS ship_addr_street2, " +\  
  76.              "  ship.addr_state AS ship_addr_state, " +\  
  77.              "  ship.addr_zip AS ship_addr_zip, " +\  
  78.              "  ship_co.co_name AS ship_co_name, " +\  
  79.              "  bill.addr_street1 AS bill_addr_street1, " +\  
  80.              "  bill.addr_street2 AS bill_addr_street2, " +\  
  81.              "  bill.addr_state AS bill_addr_state, " +\  
  82.              "  bill.addr_zip AS bill_addr_zip, " +\  
  83.              "  bill_co.co_name AS bill_co_name " +\  
  84.              "FROM customer, orders, cc_xacts," +\  
  85.              "  address AS ship, " +\  
  86.              "  country AS ship_co, " +\  
  87.              "  address AS bill,  " + \  
  88.              "  country AS bill_co " +\  
  89.              "WHERE orders.o_id = ? " +\  
  90.              "  AND cx_o_id = orders.o_id " +\  
  91.              "  AND customer.c_id = orders.o_c_id " +\  
  92.              "  AND orders.o_bill_addr_id = bill.addr_id " +\  
  93.              "  AND bill.addr_co_id = bill_co.co_id " +\  
  94.              "  AND orders.o_ship_addr_id = ship.addr_id " +\  
  95.              "  AND ship.addr_co_id = ship_co.co_id " +\  
  96.              "  AND orders.o_c_id = customer.c_id"  
  97. sql.getMostRecentOrder.lines="SELECT * " + \  
  98.              "FROM order_line, item " + \  
  99.              "WHERE ol_o_id = ? " +\  
  100.              "AND ol_i_id = i_id"  
  101.   
  102.   
  103. sql.createEmptyCart="SELECT COUNT(*) FROM shopping_cart"  
  104. sql.createEmptyCart.insert="INSERT into shopping_cart (sc_id, sc_time) " + \  
  105.              "VALUES ((SELECT COUNT(*) FROM shopping_cart)," + \  
  106.              "CURRENT_TIMESTAMP)"  
  107.   
  108.   
  109. sql.addItem="SELECT scl_qty FROM shopping_cart_line WHERE scl_sc_id = ? AND scl_i_id = ?"  
  110. sql.addItem.update="UPDATE shopping_cart_line SET scl_qty = ? WHERE scl_sc_id = ? AND scl_i_id = ?"  
  111. sql.addItem.put="INSERT into shopping_cart_line (scl_sc_id, scl_qty, scl_i_id) VALUES (?,?,?)"  
  112.   
  113.   
  114. sql.refreshCart.remove="DELETE FROM shopping_cart_line WHERE scl_sc_id = ? AND scl_i_id = ?"  
  115. sql.refreshCart.update="UPDATE shopping_cart_line SET scl_qty = ? WHERE scl_sc_id = ? AND scl_i_id = ?"  
  116.   
  117.   
  118. sql.addRandomItemToCartIfNecessary="SELECT COUNT(*) from shopping_cart_line where scl_sc_id = ?"  
  119.   
  120.   
  121. sql.resetCartTime="UPDATE shopping_cart SET sc_time = CURRENT_TIMESTAMP WHERE sc_id = ?"  
  122.   
  123.   
  124. sql.getCart="SELECT * " + \  
  125.          "FROM shopping_cart_line, item " + \  
  126.          "WHERE scl_i_id = item.i_id AND scl_sc_id = ?"  
  127.   
  128.   
  129. sql.refreshSession="UPDATE customer SET c_login = NOW(), c_expiration = (CURRENT_TIMESTAMP + INTERVAL 2 HOUR) WHERE c_id = ?"  
  130.   
  131.   
  132. sql.createNewCustomer="INSERT into customer (c_id, c_uname, c_passwd, c_fname, c_lname, c_addr_id, c_phone, c_email, c_since, c_last_login, c_login, c_expiration, c_discount, c_balance, c_ytd_pmt, c_birthdate, c_data) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"  
  133. sql.createNewCustomer.maxId="SELECT max(c_id) FROM customer"  
  134.   
  135.   
  136. sql.getCDiscount="SELECT c_discount FROM customer WHERE customer.c_id = ?"  
  137.   
  138.   
  139. sql.getCAddrId="SELECT c_addr_id FROM customer WHERE customer.c_id = ?"  
  140.   
  141.   
  142. sql.getCAddr="SELECT c_addr_id FROM customer WHERE customer.c_id = ?"  
  143.   
  144.   
  145. sql.enterCCXact="INSERT into cc_xacts (cx_o_id, cx_type, cx_num, cx_name, cx_expire, cx_xact_amt, cx_xact_date, cx_co_id) " + \  
  146.          "VALUES (?, ?, ?, ?, ?, ?, CURRENT_DATE, (SELECT co_id FROM address, country WHERE addr_id = ? AND addr_co_id = co_id))"  
  147.   
  148.   
  149. sql.clearCart="DELETE FROM shopping_cart_line WHERE scl_sc_id = ?"  
  150.   
  151.   
  152. sql.enterAddress.id="SELECT co_id FROM country WHERE co_name = ?"  
  153. sql.enterAddress.match="SELECT addr_id FROM address " + \  
  154.          "WHERE addr_street1 = ? " +\  
  155.          "AND addr_street2 = ? " + \  
  156.          "AND addr_city = ? " + \  
  157.          "AND addr_state = ? " + \  
  158.          "AND addr_zip = ? " + \  
  159.          "AND addr_co_id = ?"  
  160. sql.enterAddress.insert="INSERT into address (addr_id, addr_street1, addr_street2, addr_city, addr_state, addr_zip, addr_co_id) " + \  
  161.              "VALUES (?, ?, ?, ?, ?, ?, ?)"  
  162. sql.enterAddress.maxId="SELECT max(addr_id) FROM address"  
  163.   
  164.   
  165. sql.enterOrder.insert="INSERT into orders (o_id, o_c_id, o_date, o_sub_total, " + \  
  166.          "o_tax, o_total, o_ship_type, o_ship_date, " + \  
  167.          "o_bill_addr_id, o_ship_addr_id, o_status) " + \  
  168.          "VALUES (?, ?, CURRENT_DATE, ?, 8.25, ?, ?, CURRENT_DATE + INTERVAL ? DAY, ?, ?, 'Pending')"  
  169. sql.enterOrder.maxId="SELECT count(o_id) FROM orders"  
  170.   
  171.   
  172. sql.addOrderLine="INSERT into order_line (ol_id, ol_o_id, ol_i_id, ol_qty, ol_discount, ol_comments) " + \  
  173.          "VALUES (?, ?, ?, ?, ?, ?)"  
  174.   
  175.   
  176. sql.getStock="SELECT i_stock FROM item WHERE i_id = ?"  
  177.   
  178.   
  179. sql.setStock="UPDATE item SET i_stock = ? WHERE i_id = ?"  
  180.   
  181.   
  182. sql.verifyDBConsistency.custId="SELECT c_id FROM customer"  
  183. sql.verifyDBConsistency.itemId="SELECT i_id FROM item"  
  184. sql.verifyDBConsistency.addrId="SELECT addr_id FROM address"  

修改tpcw1.0\servlets\TPCW_Util.java

[java]  view plain copy
  1. public static final String SESSION_ID="jsessionid="//"$sessionid{1}quot;;  

修改tpcw1.0\rbe\RBE.java

[java]  view plain copy
  1. public static String www1 = "http://localhost:8080/";//"http://ironsides.cs.wisc.edu:8001/";  
  2.   
  3.     new StrStrPattern(";jsessionid="); //(";$sessionid{1}quot;);  
  4.   
  5.   public static final String field_sessionID = ";jsessionid="//";$sessionid{1}quot;;  


4.在MySQL中创建数据库tpcw2

# service mysqld start

# mysql

> CREATE DATABASE tpcw2;


5.开始安装TPC-W:

mkdir -p ${CATALINA_HOME}/webapps/tpcw/Images
mkdir -p ${CATALINA_HOME}/webapps/servlet/WEB-INF/classes

在数据库tpcw2中生成数据

cd populate
service mysqld start
javac TPCW_Populate.java
java TPCW_Populate
cp TPCW_Populate.class ${CATALINA_HOME}/webapps/servlet/WEB-INF/classes

生成并部署图片

cd ../ImgGen/ImgFiles
make
cd ..
cd ../populate
perl populate_images
cp ../images/* ${CATALINA_HOME}/webapps/tpcw/Images

编译并部署servlets

cd ../servlets
javac *.java
cp *.class ${CATALINA_HOME}/webapps/servlet/WEB-INF/classes

vi  ${CATALINA_HOME}/webapps/servlet/WEB-INF/web.xml

[html]  view plain copy
  1. <?xml version="1.0" encoding="ISO-8859-1"?>  
  2.   
  3. <web-app version="2.5"  
  4.   xmlns="http://java.sun.com/xml/ns/javaee"    
  5.   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    
  6.   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  
  7.      
  8.  <display-name>TPC-W</display-name>  
  9.   <description>  
  10.     TPC-W Java Implementation  
  11.   </description>  
  12.   
  13.   <servlet>  
  14.     <servlet-name>TPCW_home_interaction</servlet-name>  
  15.     <servlet-class>TPCW_home_interaction</servlet-class>  
  16.   </servlet>  
  17.   <servlet>  
  18.     <servlet-name>TPCW_shopping_cart_interaction</servlet-name>  
  19.     <servlet-class>TPCW_shopping_cart_interaction</servlet-class>  
  20.   </servlet>  
  21.   <servlet>  
  22.     <servlet-name>TPCW_order_inquiry_servlet</servlet-name>  
  23.     <servlet-class>TPCW_order_inquiry_servlet</servlet-class>  
  24.   </servlet>  
  25.   <servlet>  
  26.     <servlet-name>TPCW_order_display_servlet</servlet-name>  
  27.     <servlet-class>TPCW_order_display_servlet</servlet-class>  
  28.   </servlet>  
  29.   <servlet>  
  30.     <servlet-name>TPCW_search_request_servlet</servlet-name>  
  31.     <servlet-class>TPCW_search_request_servlet</servlet-class>  
  32.   </servlet>  
  33.   <servlet>  
  34.     <servlet-name>TPCW_execute_search</servlet-name>  
  35.     <servlet-class>TPCW_execute_search</servlet-class>  
  36.   </servlet>  
  37.   <servlet>  
  38.     <servlet-name>TPCW_new_products_servlet</servlet-name>  
  39.     <servlet-class>TPCW_new_products_servlet</servlet-class>  
  40.   </servlet>  
  41.   <servlet>  
  42.     <servlet-name>TPCW_best_sellers_servlet</servlet-name>  
  43.     <servlet-class>TPCW_best_sellers_servlet</servlet-class>  
  44.   </servlet>  
  45.   <servlet>  
  46.     <servlet-name>TPCW_product_detail_servlet</servlet-name>  
  47.     <servlet-class>TPCW_product_detail_servlet</servlet-class>  
  48.   </servlet>  
  49.   <servlet>  
  50.     <servlet-name>TPCW_customer_registration_servlet</servlet-name>  
  51.     <servlet-class>TPCW_customer_registration_servlet</servlet-class>  
  52.   </servlet>  
  53.   <servlet>  
  54.     <servlet-name>TPCW_buy_request_servlet</servlet-name>  
  55.     <servlet-class>TPCW_buy_request_servlet</servlet-class>  
  56.   </servlet>  
  57.   <servlet>  
  58.     <servlet-name>TPCW_buy_confirm_servlet</servlet-name>  
  59.     <servlet-class>TPCW_buy_confirm_servlet</servlet-class>  
  60.   </servlet>  
  61.   <servlet>  
  62.     <servlet-name>TPCW_admin_request_servlet</servlet-name>  
  63.     <servlet-class>TPCW_admin_request_servlet</servlet-class>  
  64.   </servlet>  
  65.   <servlet>  
  66.     <servlet-name>TPCW_admin_response_servlet</servlet-name>  
  67.     <servlet-class>TPCW_admin_response_servlet</servlet-class>  
  68.   </servlet>  
  69.   
  70.   <servlet-mapping>  
  71.     <servlet-name>TPCW_home_interaction</servlet-name>  
  72.     <url-pattern>/TPCW_home_interaction</url-pattern>  
  73.   </servlet-mapping>  
  74.   <servlet-mapping>  
  75.     <servlet-name>TPCW_shopping_cart_interaction</servlet-name>  
  76.     <url-pattern>/TPCW_shopping_cart_interaction</url-pattern>  
  77.   </servlet-mapping>  
  78.   <servlet-mapping>  
  79.     <servlet-name>TPCW_order_inquiry_servlet</servlet-name>  
  80.     <url-pattern>/TPCW_order_inquiry_servlet</url-pattern>  
  81.   </servlet-mapping>  
  82.   <servlet-mapping>  
  83.     <servlet-name>TPCW_order_display_servlet</servlet-name>  
  84.     <url-pattern>/TPCW_order_display_servlet</url-pattern>  
  85.   </servlet-mapping>  
  86.   <servlet-mapping>  
  87.     <servlet-name>TPCW_search_request_servlet</servlet-name>  
  88.     <url-pattern>/TPCW_search_request_servlet</url-pattern>  
  89.   </servlet-mapping>  
  90.   <servlet-mapping>  
  91.     <servlet-name>TPCW_execute_search</servlet-name>  
  92.     <url-pattern>/TPCW_execute_search</url-pattern>  
  93.   </servlet-mapping>  
  94.   <servlet-mapping>  
  95.     <servlet-name>TPCW_new_products_servlet</servlet-name>  
  96.     <url-pattern>/TPCW_new_products_servlet</url-pattern>  
  97.   </servlet-mapping>  
  98.   <servlet-mapping>  
  99.     <servlet-name>TPCW_best_sellers_servlet</servlet-name>  
  100.     <url-pattern>/TPCW_best_sellers_servlet</url-pattern>  
  101.   </servlet-mapping>  
  102.   <servlet-mapping>  
  103.     <servlet-name>TPCW_product_detail_servlet</servlet-name>  
  104.     <url-pattern>/TPCW_product_detail_servlet</url-pattern>  
  105.   </servlet-mapping>  
  106.   <servlet-mapping>  
  107.     <servlet-name>TPCW_customer_registration_servlet</servlet-name>  
  108.     <url-pattern>/TPCW_customer_registration_servlet</url-pattern>  
  109.   </servlet-mapping>  
  110.   <servlet-mapping>  
  111.     <servlet-name>TPCW_buy_request_servlet</servlet-name>  
  112.     <url-pattern>/TPCW_buy_request_servlet</url-pattern>  
  113.   </servlet-mapping>  
  114.   <servlet-mapping>  
  115.     <servlet-name>TPCW_buy_confirm_servlet</servlet-name>  
  116.     <url-pattern>/TPCW_buy_confirm_servlet</url-pattern>  
  117.   </servlet-mapping>  
  118.   <servlet-mapping>  
  119.     <servlet-name>TPCW_admin_request_servlet</servlet-name>  
  120.     <url-pattern>/TPCW_admin_request_servlet</url-pattern>  
  121.   </servlet-mapping>  
  122.   <servlet-mapping>  
  123.     <servlet-name>TPCW_admin_response_servlet</servlet-name>  
  124.     <url-pattern>/TPCW_admin_response_servlet</url-pattern>  
  125.   </servlet-mapping>  
  126.   
  127. </web-app>  

编译RBE

cd rbe
cd util
javac *.java
cd ../args
mkdir -p rbe/util
cp ../util/*.class rbe/util/
mkdir rbe/args
javac *.java
cp *.class rbe/args/
mv rbe ../
cd ..
javac *.java

(注:由于直接编译会出现错误,所以这里要修改部分函数名

tpcw1.0/rbe/util/Debug.java中

public class Debug {  public static void assert(boolean assertCond, String message) …

把函数名assert改成你自己想要的名字, 如assert1

接着以下三个文件中所有出现的Debug.assert中的assert都改成你自己修改函数名, 如Debug.assert1

tpcw1.0/rbe/EB.java

tpcw1.0/rbe/util/CharSetStrPattern.java

tpcw1.0/rbe/util/Histogram.java)


6.测试TPC-W:

启动tomcat

# startup.sh

访问http://localhost:8080/servlet/TPCW_home_interaction页面测试是否安装成功


7.运行TPC-W:

 cd  tpcw1.0/

 java rbe.RBE -EB rbe.EBTPCW1Factory 30 -OUT test.m -RU 100 -MI1000 -RD 100  -CUST 10000 -ITEM 10000


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值