使用Spring 3和atomikos完成了分布式事务,测试没有问题;
为了方便调用不同数据库表,使用oracle里的同义词,只要在上一步数据操作中使用了同义词,再一下步中使用事务,就一定会报事务异常;抛出异常会再执行事务操作就成功了
例如:
1. 查询列表,sql中使用同义词;
2. 提交表单,创建分布式事务操作,执行报错;错误明细如下。
3. 再提交表单,创建分布式事务操作,执行成功;
错语:
com.atomikos.datasource.ResourceException: XA resource 'dataSourceDMD': resume for XID '3137322E32392E3136352E3132312E746D30303030333030303037:3137322E32392E3136352E3132312E746D37' raised -3: the XA resource detected an internal error
at com.atomikos.datasource.xa.XAResourceTransaction.resume(XAResourceTransaction.java:500)
at com.atomikos.datasource.xa.session.BranchEnlistedStateHandler.<init>(BranchEnlistedStateHandler.java:57)
at com.atomikos.datasource.xa.session.NotInBranchStateHandler.checkEnlistBeforeUse(NotInBranchStateHandler.java:66)
at com.atomikos.datasource.xa.session.TransactionContext.checkEnlistBeforeUse(TransactionContext.java:85)
at com.atomikos.datasource.xa.session.SessionHandleState.notifyBeforeUse(SessionHandleState.java:176)
at com.atomikos.jdbc.AtomikosConnectionProxy.enlist(AtomikosConnectionProxy.java:204)
at com.atomikos.jdbc.AtomikosConnectionProxy.invoke(AtomikosConnectionProxy.java:138)
at $Proxy163.prepareStatement(Unknown Source)
at org.springframework.jdbc.core.PreparedStatementCreatorFactory$PreparedStatementCreatorImpl.createPreparedStatement(PreparedStatementCreatorFactory.java:245)
at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:580)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:811)
at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:833)
at org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate.update(NamedParameterJdbcTemplate.java:260)
at org.springframework.jdbc.core.simple.SimpleJdbcTemplate.update(SimpleJdbcTemplate.java:243)
相关推荐
Atomikos 是一个开源的JTA实现,它为Spring提供了一个轻量级、高性能的分布式事务解决方案。本文将深入探讨如何使用Spring、JTA和Atomikos来实现分布式事务。 首先,了解JTA的基本概念。JTA定义了一套规范,允许在...
Spring框架提供了强大的支持来处理分布式事务,而Atomikos是一个开源的事务管理器,专门用于处理JTA(Java Transaction API)事务,尤其适用于微服务和分布式环境。本教程将探讨如何结合Spring和Atomikos来实现...
在这个案例中,我们将深入探讨如何使用Spring 4与Atomikos来实现跨数据库的分布式事务管理。 Atomikos是一款开源的事务处理监控器(Transaction Processing Monitor,TPM),它支持JTA(Java Transaction API)标准...
使用spring + atomikos+druid配置的分布式事务demo,两种数据源配置方式都可以,使用junit测试没问题,案例中使用的mysql数据库是8.0.11版本,版本不同请自行修改pom.xml和jdbc.properties
本示例"spring+atomikos+druid分布式事务Demo"聚焦于如何在Spring框架中利用Atomikos和Druid来处理分布式事务。接下来,我们将深入探讨这三个组件以及它们在实现分布式事务中的作用。 Spring是一个广泛使用的Java...
这样,当一个事务开始时,Spring会自动管理SqlSessionFactory的打开和关闭,以及在事务边界内的SQL执行。 为了使用Atomikos,我们需要在项目中引入相应的依赖,并进行一些配置。配置主要包括设置Atomikos的事务管理...
本教程将探讨如何利用Spring Boot、Druid、Mybatis以及Atomikos来配置多数据源并实现分布式事务。 首先,Spring Boot是Java生态系统中的一个流行框架,它简化了设置和配置过程,使得开发人员可以快速启动新项目。在...
本项目"java+spring+mybatis+mysql+RuoYi-atomikos-实现分布式事务.zip"是一个基于若依(RuoYi)框架改造的多模块分布式事务解决方案,它利用了Atomikos这一强大的分布式事务管理器。以下将详细解析这个项目的知识点...
AtomikosDataSource支持JTA事务,这意味着我们可以在同一个事务中操作多个数据源。Spring的`@Transactional`注解可以用来开启和管理这些分布式事务,确保事务的ACID特性。 7. **代码示例** 创建多数据源的配置...
Spring Boot作为轻量级的Java开发框架,结合Atomikos这样的分布式事务管理器,可以有效地解决这些问题。本文将深入探讨如何在Spring Boot项目中实现Atomikos分布式事务以及动态数据源切换的两种示例。 首先,我们...
在业务逻辑代码中,通过@Transaction注解开启一个分布式事务,这样在同一个事务内,所有对两个数据库的操作都会被原子化处理,确保数据的一致性。 具体步骤如下: 1. 添加Atomikos、Hibernate、MyBatis及对应数据库...
本教程将聚焦于如何利用Spring 3.0、Hibernate ORM框架以及Atomikos这个开源事务管理器来实现高效、可靠的多数据源分布式事务处理。 **Spring 3.0**: Spring是Java开发中最广泛使用的轻量级框架之一,它提供了一个...
SSM(SpringMVC、Spring、MyBatis)框架是Java Web开发中常见的技术栈,而Atomikos则是一个强大的开源事务管理器,主要用于处理分布式事务。本案例以非Maven方式构建,展示了如何在不依赖Maven构建系统的情况下,...
3. 集成Spring:在Spring配置文件中,指定Atomikos事务管理器,并启用JTA支持。 4. 配置MyBatis:设置SqlSessionFactory,并确保其使用Atomikos提供的数据源。 5. 开启事务支持:在需要执行分布式事务的Service类中...
本项目使用Spring Boot、Atomikos、JTA(Java Transaction API)、Hibernate和MySQL来实现分布式事务处理和多数据源管理,以确保在多个数据库操作之间保持事务的ACID特性。 首先,Spring Boot作为微服务开发的主流...
3. 配置Spring:在Spring的配置文件中启用事务管理,并配置Atomikos事务协调器,指定Atomikos的配置文件位置。 4. 配置数据源:为每个参与分布式事务的数据源创建AtomikosManagedDataSource实例,并在Spring配置中...
将基于Spring4.1.7+atomikos+mybaits 实现两阶段的分布式事务处理,通过AOP面向切面实现动态实现数据源的切换 http://www.dczou.com/viemall/407.html
这会为后续的所有操作创建一个事务上下文。 5. **执行操作**:在事务范围内执行涉及多个数据库的操作。每个数据库操作都应该在事务管理器的控制下进行,确保它们都遵循ACID(原子性、一致性、隔离性和持久性)原则...
本文将详细讲解如何利用Spring Boot、Atomikos、JPA(Java Persistence API)以及MySQL来实现JTA(Java Transaction API)分布式事务。 首先,Spring Boot是一个轻量级的框架,它简化了基于Spring的应用程序开发...
本篇文章将深入探讨如何在Spring框架中结合Mybatis和Atomikos进行分布式事务管理的配置与集成。Atomikos是一款强大的开源事务处理系统,它支持JTA(Java Transaction API),可以为我们的应用程序提供分布式事务解决...