`
goldpigbaby
  • 浏览: 12547 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

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

阅读更多
这几天都在调关于分布式事务的控制真是令人郁闷.环境就如标题所说一样,程序启动一切正常在测试的时候就是不能控制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的分布式事务.
   
  
分享到:
评论
4 楼 goldpigbaby 2007-04-11  
这个问题终于得到了解决,其实我一直怀疑是我的jotm的lib库有问题,但是console又没有一点关于这方面的提示。昨天在
huntevahttp://www.blogjava.net/hunteva/的帮助解决了这个问题,主要他给我发了一份lib库。其实看了他的
使用Spring+Hibernate+JOTM+Oracle9i集成解决方案的遭遇,才决定试用一下jotm。
3 楼 goldpigbaby 2007-03-26  
嗨,就这样沉下去了,我也暂时找不到解决问题的方法
2 楼 goldpigbaby 2007-03-26  
<div class='code_title'>我的mysql开发环境是mysql5.1+innodb+connecor/j-5.0按理说这是支持xa事务的环境<br/>
sql 代码</div>
<div class='dp-highlighter'>
<ol class='dp-sql' start='1'>
    <li class='alt'><span><span class='keyword'>CREATE</span><span> </span><span class='keyword'>TABLE</span><span> `user_info` (  </span></span></li>
    <li class=''><span>  `id` <span class='keyword'>int</span><span>(11) </span><span class='op'>NOT</span><span> </span><span class='op'>NULL</span><span> auto_increment,  </span></span></li>
    <li class='alt'><span>  `role_id` <span class='keyword'>int</span><span>(11) </span><span class='op'>NOT</span><span> </span><span class='op'>NULL</span><span>,  </span></span></li>
    <li class=''><span>  `login_name` <span class='keyword'>varchar</span><span>(30) </span><span class='op'>NOT</span><span> </span><span class='op'>NULL</span><span>,  </span></span></li>
    <li class='alt'><span>  `<span class='keyword'>name</span><span>` </span><span class='keyword'>varchar</span><span>(30) </span><span class='op'>NOT</span><span> </span><span class='op'>NULL</span><span>,  </span></span></li>
    <li class=''><span>  `<span class='keyword'>password</span><span>` </span><span class='keyword'>varchar</span><span>(12) </span><span class='op'>NOT</span><span> </span><span class='op'>NULL</span><span>,  </span></span></li>
    <li class='alt'><span>  <span class='keyword'>PRIMARY</span><span> </span><span class='keyword'>KEY</span><span>  (`id`),  </span></span></li>
    <li class=''><span>  <span class='keyword'>UNIQUE</span><span> </span><span class='keyword'>KEY</span><span> `login_name` (`login_name`),  </span></span></li>
    <li class='alt'><span>  <span class='keyword'>KEY</span><span> `FK1437D8A2FED6E84E` (`role_id`),  </span></span></li>
    <li class=''><span>  <span class='keyword'>CONSTRAINT</span><span> `FK1437D8A2FED6E84E` </span><span class='keyword'>FOREIGN</span><span> </span><span class='keyword'>KEY</span><span> (`role_id`) </span><span class='keyword'>REFERENCES</span><span> `role_info` (`id`)  </span></span></li>
    <li class='alt'><span>) ENGINE=InnoDB <span class='keyword'>DEFAULT</span><span> CHARSET=gbk;  </span></span></li>
</ol>
</div>
1 楼 ahuaxuan 2007-03-26  
看一下你的mysql中的表是否设置成了innodb了,我是每次在建表的时候把type=innodb的

相关推荐

    spring+jotm+ibatis+mysql实现JTA分布式事务

    本项目“spring+jotm+ibatis+mysql实现JTA分布式事务”旨在利用这些技术来确保在分布式环境中的数据一致性。下面将详细介绍这个项目所涉及的知识点。 首先,Spring框架是Java开发中最常用的应用框架之一,它提供了...

    Spring+JOTM 分布式事务管理

    Spring框架作为一个广泛使用的Java应用程序开发框架,提供了多种支持事务管理的解决方案,其中包括集成JOTM(Java Open Transaction Manager)来处理分布式事务。本文将深入探讨Spring与JOTM结合使用的知识点,帮助...

    Spring+Jotm+Hibernate+Oracle+Junit 实现JTA分布式事务要求Demo工程

    2.Spring+Jotm整合实现JTA分布式事务,应用场景如转账等,同一事务内完成db1用户加100元、db2用户减100元。 3.Spring+Junit4单元测试,优点:不会破坏数据库现场,等等。 (特别注意:Spring3.0里不在提供对jotm的...

    spring + JTA + JOTM实现分布式事务

    本教程将深入探讨如何使用Spring框架、Java Transaction API (JTA) 和 Java Open Transaction Manager (JOTM) 来实现这样的分布式事务管理。 首先,我们来了解一下JTA。JTA是Java平台的标准事务API,它允许应用程序...

    spring 3.0.5 + jotm 实现的的spring mvc 的例子

    标题中的“spring 3.0.5 + jotm 实现的的spring mvc 的例子”表明这是一个关于使用Spring 3.0.5版本与JOTM(Java Open Transaction Manager)结合构建Spring MVC应用的示例项目。这个项目可能旨在演示如何在Spring ...

    Java分布式开发spring+jta+jotm

    在Spring中,Java Transaction API (JTA) 和 JOTM(Java Open Transaction Manager)是实现分布式事务管理的关键组件。 **Spring 框架** Spring 是一个开源的Java平台,它提供了一个全面的编程和配置模型,用于现代...

    struts + spring + hibernate + velocity + ajax + jotm + acegi

    简介: struts + spring + hibernate + velocity + ajax + jotm + acegi ================================================================================================ 本资料共包含以下附件: 1161...

    spring+jotm 多数据源事务管理(三)JNDI+Tomcat

    在本篇文章中,我们将深入探讨如何利用Spring框架结合JOTM(Java Open Transaction Manager)来实现多数据源下的分布式事务管理。我们将通过具体实例展示如何在Tomcat服务器环境下配置并使用这些技术。 #### 一、...

    Spring分布式事务实现

    总结来说,Spring分布式事务实现主要依赖于Spring框架的事务管理能力、JOTM作为JTA实现的事务管理器,以及相关的JDBC驱动来连接数据库。通过声明式事务管理,开发者可以在不深入事务管理细节的情况下,编写出可靠的...

    spring+jotm 多数据源事务管理(二)hibernate

    本篇文章将聚焦于如何结合Spring和JOTM(Java Open Transaction Manager)来实现多数据源的事务管理,特别是针对使用Hibernate的情况。 JOTM是Java平台上的一个开放源代码事务管理器,它遵循JTA(Java Transaction ...

    hibernate+tomca5.5t+JOTM 2.10 JTA配置

    JOTM是基于Java的开放源代码事务管理器,实现了JTA标准,允许在分布式环境中管理事务。JTA是Java EE平台的一部分,提供了一种统一的方式来处理事务,无论底层数据库或资源管理系统是什么。 配置步骤大致如下: 1. ...

    spring JTA集成JOTM或Atomikos配置分布式事务(Tomcat应用服务器)

    本文将深入探讨如何在Tomcat应用服务器上集成JTA,并使用JOTM(Java Open Transaction Manager)或Atomikos作为事务管理器来实现分布式事务。 首先,我们需要理解JTA的核心概念。JTA是Java EE平台的一部分,提供了...

    Tomcat中使用JOTM2.14

    JOTM实现了Java Transaction API (JTA),这是一个标准接口,允许应用程序进行分布式事务处理。JOTM支持X/Open XA规范,允许管理跨越多个资源(如数据库和消息队列)的事务。在Tomcat中配置JOTM,可以提供更高级别的...

Global site tag (gtag.js) - Google Analytics