首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

独立Spring JtaTransactionManager不能与WAS一起使用

是因为WebSphere Application Server(WAS)已经提供了自己的事务管理器,无法与Spring框架中的JtaTransactionManager共存。

JtaTransactionManager是Spring框架提供的一个事务管理器实现,用于支持分布式事务。它基于Java Transaction API(JTA)规范,可以与各种JTA兼容的事务管理器(如Atomikos、Bitronix等)集成,实现跨多个资源的事务管理。

WAS是IBM提供的一个Java应用服务器,它内置了自己的事务管理器,遵循JTA规范,并提供了一些扩展功能。由于WAS已经提供了完整的事务管理功能,包括事务的创建、提交、回滚等操作,因此在使用WAS作为应用服务器时,不需要再使用独立的JtaTransactionManager。

如果需要在Spring应用中使用分布式事务,并且部署在WAS上,可以直接使用WAS提供的事务管理器。Spring框架会自动检测到WAS的事务管理器,并与之集成。在配置文件中,可以使用<tx:jta-transaction-manager>元素来声明事务管理器,并指定JNDI名称或直接引用WAS事务管理器的Bean。

总结起来,独立Spring JtaTransactionManager不能与WAS一起使用是因为WAS已经提供了自己的事务管理器,无法与Spring框架中的JtaTransactionManager共存。在使用WAS作为应用服务器时,可以直接使用WAS提供的事务管理器,而不需要额外配置独立的JtaTransactionManager。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云数据库TDSQL:腾讯云提供的高性能、高可用的云数据库服务,支持MySQL和PostgreSQL,适用于各种规模的应用场景。
  • 腾讯云容器服务TKE:腾讯云提供的容器化部署和管理服务,支持Kubernetes,帮助用户快速构建、部署和扩展容器化应用。
  • 腾讯云云服务器CVM:腾讯云提供的弹性计算服务,提供可扩展的虚拟机实例,适用于各种计算场景。
  • 腾讯云对象存储COS:腾讯云提供的安全、稳定、低成本的云存储服务,适用于存储和处理各种类型的数据。
  • 腾讯云区块链服务BCS:腾讯云提供的一站式区块链服务,帮助用户快速构建和部署区块链应用,提供高性能、高可用的区块链网络。
  • 腾讯云人工智能AI:腾讯云提供的全面的人工智能服务,包括图像识别、语音识别、自然语言处理等,帮助用户构建智能化的应用。
  • 腾讯云物联网IoT Hub:腾讯云提供的物联网接入和管理服务,支持海量设备接入、数据采集和设备管理,适用于各种物联网场景。
  • 腾讯云移动开发MPS:腾讯云提供的一站式移动应用开发服务,包括移动后端云服务、移动推送、移动分析等,帮助用户快速构建和发布移动应用。
  • 腾讯云音视频处理VOD:腾讯云提供的音视频处理和分发服务,支持音视频上传、转码、截图、水印等功能,适用于各种音视频应用场景。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

推荐使用Spring Boot 2.2.0

使用 Hoxton.RC1 版本需要配置 spring 仓库 spring-milestones Spring Milestones spring boot admin 未发布 2.2.0 适配版本 解决方法: 使用快照版本2.2.0-SNAPSHOT, 需要配置快照厂库 <id...boot 2.2.0 bug ,造成 和mybatis 3.5.2 兼容 官方issue 构造器注入的问题, mybatis 私有构造器不能绑定属性, 造成其他 依赖mybatis 的框架 类型...总结 由于使用Spring Cloud RC 版本未同步到 阿里云等国内镜像厂库 mvn clean install 可能会出现失败,建议重复执行几次即可 ---- 鉴于Spring Boot 2.2.0...和 mybatis 的兼容问题,2.2.1 会修复这个问题,建议暂时不要升级2.2.0 直接使用 2.2.1 2.2.1 已经发布,请直接升级到2.2.1 即可解决兼容问题 (2019年11月07

1K20
  • JPA多数据源分布式事务处理-两种事务方案

    这个方案解决了问题的同时,带来了一个新的问题,数据源的事务是独立的,正如我文中所述《JPA项目多数据源模式整合sharding-jdbc实现数据脱敏》,在spring上下文中,每个数据源对应一个独立的事务管理器...jtaTransactionManager = new JtaTransactionManager(userTransaction, transactionManager); transactionManagerCustomizers.ifAvailable...((customizers) -> customizers.customize(jtaTransactionManager)); return jtaTransactionManager; }...,前文中《深入理解spring的@Transactional工作原理》已经分析了Spring的事务抽象,由PlatformTransactionManager(事务管理器)、TransactionStatus...另本文分享了一种链式事务编排的方式也可以应用在这种场景,但是特殊的场景下不能保证事务的完整性,所以博主推荐使用JtaTransactionManager,有符合的场景也可以试试ChainedTransactionManager

    2K20

    SpringBoot整合atomikos实现跨库事务

    TCC事务等方案,因为业务主要涉及政府及企业且并发量不大,所以采用XA事务,虽然性能有所损失,但是可以保证数据的强一致性 方案设计 针对注册的数据源拷贝一份用于XA事务,使得本地事务和XA全局事务相互独立可选择的使用... 注册XA数据源 使用Druid连接池,需要使用DruidXADataSource数据源对象,再使用AtomikosDataSourceBean...spring内置的JtaTransactionManager事务管理器对象,设置AllowCustomIsolationLevels为true,否则指定自定义事务隔离级别会报错 //xa模式全局事务管理器...jtaTransactionManager = new JtaTransactionManager(userTransaction, userTransactionManager);...jtaTransactionManager.setAllowCustomIsolationLevels(true); return jtaTransactionManager;

    34840

    spring mvc为什么默认使用jackson而选择fastjson

    总体用法上觉得配置暴力些但使用还算简单, 全局的JSON属性, 基本都是静态方法调用, 传入一些Filter可过滤一些类的字段, 引用死循环简单设下属性也可避免。...对象转为json串忽略字段,别名等基本比较依赖对象类使用注解@JsonProperty, @JsonIgnore, @JsonView等。...无法加注解的, 虽然有ObjectMapper.addMixIn等方法绕过; 引用死循环需要手工指定 @JsonManagedReference和@JsonBackReference虽然合理但啰嗦些;总体API使用没...spring mvc, spring boot, spring security里面json默认都是jackson处理, 如果不想多配置, jackson也将就着, 综合看它应该相对全面些稳些。...要把字符串转换为对象, 无论是XML, JSON, spring mvc ctrl参数自动生成, spring自身的SPEL, 甚至是java自带的反串行化, 实际上一直一起来都或多或少有些安全漏洞。

    1.6K20

    Spring认证中国教育管理中心-Apache Geode 的 Spring 数据教程十八

    org.springframework.data.gemfire.GemfireTemplate" p:region-ref="SomeRegion"/> 配置模板后,开发人员可以将其与GemfireCallbackApache Geode一起使用...但是,无论您是在具有支持“最后资源”的开源 JTA 事务管理实现的独立环境中使用 Apache Geode ,还是在托管环境(例如 Java EE AS,如 WAS)中使用 Apache Geode,Apache...上面的 #1 独立于您的 Spring [Boot] 和/或 [Data for Apache Geode] 应用程序,并且必须成功完成。...当然,希望你知道JtaTransactionManager使用 JTA 事务时你还需要配置 Spring 的。...您JtaTransactionManager如上所示配置 Spring 。 有关将Spring 的事务管理与 JTA 结合使用的更多详细信息,请参见此处。

    20210

    多数据源事务处理-涉及分布式事务

    数据源跨库但是跨 MySql 实例 这个形式就是数据源在同一个 MySQL 下,但是 jdbc-url 上的数据库配置不同,涉及多个数据库时,如果方法中发生异常,只有开启事务的数据源会发生回滚,其他数据源不会回滚...我们的解释就是 Spring 中默认使用的事务管理器是使用主数据源配置还是从数据源配置由我们通过 @Primary 决定,当我们把 @Primary 切换在从数据源配置上,执行结果:table2表回滚成功...添加 JtaTransactionManager @Bean public JtaTransactionManager transactionManager() throws Exception {...(transaction); } } } 可以看到我们使用的是 JtaTransactionManager, 执行结果:table1表回滚成功,table2表回滚成功。...总结 关于多数据源事务的问题,不管跨跨库其实都属于分布式事务的问题。推荐使用 seata 解决。

    56130

    怎样使用Spring的配置文件?带大家一起玩转Spring配置文件

    前言 整理了自己的学习笔记,包括Spring程序的快速使用、Bean标签的使用和其属性的具体使用,每个属性都用代码来解释,运行结果和案例写的都很明白,喜欢大家喜欢。...步骤五:使用 Spring 的 API 获得 Bean 实例 接下来测试一下: public class UserDaoDemo { public static void main(String...运行结果: [在这里插入图片描述] 结果正确,到了这里,spring的配置文件你已经有了基本的了解,接下来让我们看看spring配置文件中其它的细节使用吧!...二、✔Spring配置文件使用 1、Bean标签基本配置 基本介绍 用于配置对象交由Spring 来创建 默认情况下它调用的是类中的无参构造函数,如果没有无参构造函数则不能创建成功,对于有参构造器,后面会慢慢讲到...那这种业务层和持久层的依赖关系,在使用 Spring 之后,就让 Spring 来维护了。 简单的说,就是坐等框架把持久层对象传入业务层,而不用我们自己去获取。

    1.2K10

    Spring事务扩展篇

    Spring还在很多地方用到了策略模式: bean实例化过程中,会根据情况决定使用反射还是cglib,InstantiationStrategy是容器使用的实例化策略的抽象接口,Spring默认提供了...---- 分布式事务 对分布式事务不了解的,建议先阅读下面这篇文章: Mysql分布式事务 SpringJtaTransactionManager使用到了JDNI技术,不了解的可以去看看: JNDI是什么...当需要参与分布式事务的RM都拥有了XAResource支持后,JTATransactionManager与RM之间就可以使用二阶段提交协议进行通信。...---- 不过,如果我们使用的JTA实现不是相应的AppServer提供的,比如,可以独立使用的Atomikos或者JOTM等JTA实现,要求我们从应用服务器的JNDI服务取得相应的DataSource...---- 整体架构概览 对于Spring而言,其只提供了对分布式事务的顶层类封装,方便将其纳入原本的Spring的事务管理中,该类就是JtaTransactionManager AbstractPlatformTransactionManager

    40920

    多数据源事务处理-涉及分布式事务

    数据源跨库但是跨 MySql 实例 这个形式就是数据源在同一个 MySQL 下,但是 jdbc-url 上的数据库配置不同,涉及多个数据库时,如果方法中发生异常,只有开启事务的数据源会发生回滚,其他数据源不会回滚...我们的解释就是 Spring 中默认使用的事务管理器是使用主数据源配置还是从数据源配置由我们通过 @Primary 决定,当我们把 @Primary 切换在从数据源配置上,执行结果:table2表回滚成功...@Bean public JtaTransactionManager transactionManager() throws Exception { JtaTransactionManager...(transaction); } } } 可以看到我们使用的是 JtaTransactionManager, 执行结果:table1表回滚成功,table2表回滚成功。...总结 关于多数据源事务的问题,不管跨跨库其实都属于分布式事务的问题。推荐使用 seata 解决。

    83151

    关于Spring的事务Transactional,锁同步,并发线程Spring事务传播机制和数据库隔离级别

    Spring事务传播机制和数据库隔离级别 在标准SQL规范中定义了4个事务隔离级别,不同隔离级别对事务处理不同 。 未授权读取(Read Uncommitted): 也称 未提交读。...隔离级别 更新丢失 脏读取 重复读取 幻读 未授权读取 N Y Y Y 授权读取 N N Y Y 可重复读取 N N N Y 串行 N N N N Spring在TransactionDefinition...Transactional(propagation=Propagation.NESTED) public void method2(){ xxxxxx } } ``` 因为method1使用...不管是什么类型的嵌套事务,一个线程只有一个事务,线程结束的时候才提交事务,包括嵌套事务,即使嵌套事务是REQUIRES_NEW,也不是嵌套事务的方法结束就提交事务的,一定是等到外部事务方法结束,整个线程结束才一起提交的...如果这些相互嵌套调用的方法工作在不同的线程中,则不同线程下的事务方法工作在独立的事务中。 而锁存在于事务里,锁的生命周期也是一个线程,在一个线程里可多次取得同一个锁。

    1.5K30

    推荐使用Spring Boot 2.2.0 ,这个问题你肯定会遇

    > 项目推荐: Spring Cloud 、Spring Security OAuth2的RBAC权限管理系统 欢迎关注 最新版本实践 > 上篇文章讲到 Spring Boot 2.2.0 和 MyBatis...ConfigurationProperties 注解使用 如上图,当配置文件中存在相同组的属性,用户名、密码、年龄 都属于用户属性的抽象,按面向的规则我们可以抽取出一个 User 的PO类型使用 @ConfigurationProperties...同时可以像其他任何Spring bean一样在整个应用程序代码中注入和使用此bean。...spring boot 2.2 之前版本 必须使用 @Component 或者 @Configuration 声明成Spring Bean,不然无法注入 这里注意下 ConfigurationProperties...> 项目推荐: Spring Cloud 、Spring Security OAuth2的RBAC权限管理系统 欢迎关注

    46800

    ActiveMQ进阶学习

    当在使用JmsTemplate进行消息发送时没有指定destination的时候将使用默认的Destination。...兼容性方面,它非常接近于独立的JMS规范,但一般兼容Java EE的JMS限制。...Spring在初始化JmsTemplate的时候指定了其对应的MessageConverter为一个SimpleMessageConverter,所以如果平常没有什么特殊要求的时候可以直接使用JmsTemplate...在一个独立的环境中,使用Spring的SingleConnectionFactory时所有的事务将公用一个Connection,但是每个事务将保留自己独立的Session。...要配置这样一个参与分布式事务管理的消息监听容器,可以配置一个JtaTransactionManager,当然底层的JMS ConnectionFactory需要能够支持分布式事务管理,并正确地注册JtaTransactionManager

    1.1K60
    领券