This test will be used for stress testing. Basically It uses 2 resources 1 XA and 1 NonXA. Therefore LAO optimization can be used to get the better performance.This test is not fully automated. Here are some of the instructions that you need to follow.

* run sql/create_table.sql and sql/drop_table.sql manually onto your database
* set the classes12.zip (oracle driver) into classpath(domain.xml). if you are using oracle database.
* set the following properties in build.properties with respect to your
DataBase Server
<property name="db.url1" value="jdbc:oracle:thin:@mig:1521:mig"/>
<property name="db.url2" value="jdbc:oracle:thin:@129.158.229.89:1521:orcl9"/>
<property name="db.class1" value="oracle.jdbc.xa.client.OracleXADataSource"/>
<property name="db.class2" value="oracle.jdbc.pool.OracleDataSource"/>
<property name="db.user1" value="jtstest"/>
<property name="db.pwd1" value="jtstest"/>
<property name="db.user2" value="scott"/>
<property name="db.pwd2" value="tiger"/>
<property name="jdbc.resource.type1" value="javax.sql.XADataSource"/>
<property name="jdbc.resource.type2" value="javax.sql.DataSource"/>

* URL to acees the servlet is 
http://localhost:8080/simpleservlettest/simpleservlettest?input=109
   Where input could be any integer value.
* After doing the stress testing undeploy the application by calling
 asant undeploy
