import java.sql.Connection;
import javax.transaction.TransactionManager;
import javax.transaction.UserTransaction;
import org.enhydra.jdbc.standard.StandardXADataSource;
import org.objectweb.jotm.Jotm;
public class JotmMain {
public static void main(String[]arges) throws Exception{
//startDabase();
//创建JTA的UserTransaction 与TransactionManager
//使用UserTransaction 进行事物的提交回滚
//使用TransactionManager 进行事物源的管理
Jotm jotm=new Jotm(true,false);
TransactionManager transactionManager=jotm.getTransactionManager();
UserTransaction userTransaction=jotm.getUserTransaction();
//创建分布式数据源
StandardXADataSource datasource1=new StandardXADataSource();
datasource1.setDriverName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
datasource1.setUrl("jdbc:sqlserver://localhost:1433;DatabaseName=bid3");
datasource1.setPassword("sa");
datasource1.setUser("sa");
datasource1.setTransactionManager(transactionManager);//将事物源交给transactionManager管理
StandardXADataSource datasource2=new StandardXADataSource();
datasource2.setDriverName("com.mysql.jdbc.Driver");
datasource2.setUrl("jdbc:mysql://localhost:3306/springdata");
datasource2.setPassword("sa");
datasource2.setUser("root");
datasource2.setTransactionManager(transactionManager);
//得到分布式数据源的连接
Connection con=datasource1.getXAConnection().getConnection();
Connection con2=datasource2.getXAConnection().getConnection();
userTransaction.begin();//启动分布式事物边界
try{
con.createStatement().execute("update t_b_ftp set ftpserverip='127.0.0.2'");
con2.createStatement().execute("update testcb set age=3");
int i=1/0;
System.out.println(""+i);
userTransaction.commit();
}catch(Exception e){
userTransaction.rollback();
e.printStackTrace();
}finally{
con.close();
con2.close();
}
}
引用的jar报/;
}