如何对几个不同的数据库同时做事务处理

caoyizhi1987 2010-09-16 02:16:35
我在做一个j2ee项目时,需要对数据库数据进行同步,初拟是三个数据库,数据库类型不同,如何才能在对三个数据库同时做操作时进行事物处理
...全文
184 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
stalendp 2010-09-16
  • 打赏
  • 举报
回复
如果用ejb的话,默认的情况就是在事务中进行(称之为:容器管理的事务)。如果在ejb内自己控制事务的范围,有两种手段获取全局事务,一个是用注入的方式:
@Resource UserTransaction utx;


utx.begin();
...
utx.commit(); //Or utx.rollback();

还有一种是jndi,查找方式:
Context ctx = new InitialContext();
UserTransaction utx = ctx.lookup("java:comp/UserTransaction");
utx.begin();
//TODO
....
utx.commit(); //Or utx.rollback();

其中jndi方式,可以用在没有ejb的环境中,比如客户端(ACC),jsp,servlet,等等。但是全局事务是要依靠服务器实现的支持,所以要有服务器环境(比如weblogic,websphere,glassfish等)
stalendp 2010-09-16
  • 打赏
  • 举报
回复
用全局事务,并且用到连接要支持XA,这个涉及到数据库的“两阶段提交”,建议查找关键字:Two-phase commit, global transaction。

67,516

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧