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报/;
}
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报/;
}
相关文章推荐
- 使用JOTM实现分布式事物管理(多个数据源)
- spring与jotm整合的分布式事物案例
- 使用JOTM实现分布式事务管理(多数据源)
- springboot(十三)多数据源分布式事物管理
- 使用JOTM实现分布式事务管理(多数据源)
- spring boot本地事物管理和分布式事物管理(五)
- (ZT)使用JOTM实现分布式事务管理(多数据源)
- vue-cli入门(二)——人员管理实例小demo
- spring+mybatis+atomikos实现分布式事物管理
- 使用JOTM实现分布式事务管理(多数据源)
- C# TransactionScope 分布式事物使用实例
- vue-cli入门(三)——人员管理实例
- 无废话ExtJs 入门教程二十三[员工管理实例:Demo]
- 分布式服务框架学习笔记9 ActiveMQ入门2 管理、生产者/消费者模式
- 使用JOTM实现分布式事务管理(多数据源)
- vue-cli入门(三)——人员管理实例
- Spring Boot 分布式事物管理
- Springboot入门之分布式事务管理
- Jotm 事物管理
- 使用JOTM实现分布式事务管理(多数据源)