论坛首页 Java企业应用论坛

tomcat+jotm+spring+oracle10+mysql5.1实现分布式事务的遭遇

浏览 5111 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-03-26  
这几天都在调关于分布式事务的控制真是令人郁闷.环境就如标题所说一样,程序启动一切正常在测试的时候就是不能控制mysql的事务.
java 代码
 
  1. public void saveUser(OracleUser user1,MysqlUser user2){  
  2. save(user1);  
  3. save(user2)  
  4. }  
测试结果:
1.Oracle的事务控制正常,当sava(user2)失败是oracle实现回滚.如果没有问题就顺利提交.
2.Mysql事务控制失败,当save(user1)失败时照样插入数据库.

查询程序两个调用方式没有什么不同为什么oracle可以而mysql不行呢?我查了一些资料说数据库表必须是INNODB数据存储引擎才可以实现事务控制.我也确认一下的mysql的事务支持环境,我用nnodb+5.1server+connector/j5.0网上都说可以支持xa事务,我实在搞不懂问题到底出在哪?是mysql需要特殊设置才行吗?不知道有没有同学用jotm实现过mysql的分布式事务.
   
  
   发表时间:2007-03-26  
看一下你的mysql中的表是否设置成了innodb了,我是每次在建表的时候把type=innodb的
0 请登录后投票
   发表时间:2007-03-26  
我的mysql开发环境是mysql5.1+innodb+connecor/j-5.0按理说这是支持xa事务的环境
sql 代码
  1. CREATE TABLE `user_info` (  
  2.   `id` int(11) NOT NULL auto_increment,  
  3.   `role_id` int(11) NOT NULL,  
  4.   `login_name` varchar(30) NOT NULL,  
  5.   `namevarchar(30) NOT NULL,  
  6.   `passwordvarchar(12) NOT NULL,  
  7.   PRIMARY KEY  (`id`),  
  8.   UNIQUE KEY `login_name` (`login_name`),  
  9.   KEY `FK1437D8A2FED6E84E` (`role_id`),  
  10.   CONSTRAINT `FK1437D8A2FED6E84E` FOREIGN KEY (`role_id`) REFERENCES `role_info` (`id`)  
  11. ) ENGINE=InnoDB DEFAULT CHARSET=gbk;  
0 请登录后投票
   发表时间:2007-03-26  
嗨,就这样沉下去了,我也暂时找不到解决问题的方法
0 请登录后投票
   发表时间:2007-04-11  
这个问题终于得到了解决,其实我一直怀疑是我的jotm的lib库有问题,但是console又没有一点关于这方面的提示。昨天在
huntevahttp://www.blogjava.net/hunteva/的帮助解决了这个问题,主要他给我发了一份lib库。其实看了他的
使用Spring+Hibernate+JOTM+Oracle9i集成解决方案的遭遇,才决定试用一下jotm。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics