您的位置:首页 > 其它

Jotm 分布式事物管理入门实例

2012-04-18 10:27 197 查看
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报/;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: