- 浏览: 717045 次
文章分类
最新评论
-
白天看黑夜:
Apache Mina Server 2.0 中文参考手册(带 ...
基于Mina的Http Server以及简单的Http请求客户端 -
Baple:
...
Maven常用配置 -
喵喵大神:
推荐聚合数据上一些免费API接口https://www.juh ...
又一波开放API接口 精品文摘、站内搜索、笑话详情 -
ioandy:
请问楼主,为什么我在测试的时候,会收到2次请求?
基于Mina的Http Server以及简单的Http请求客户端 -
jammk:
之前看到一个,应该也是灵图的,http://www.cnblo ...
又来一只开放API——基于FAQ的问答机器人
本文是基于atomikos实现的JTA跨库事务
示例中的数据访问层为Hibernate,可替换为喜欢的任意的方式。
具体使用比较简单,只是需要在配置上做一些修改
具体测试源码见附件,其中核心配置如下:
有不清楚的,欢迎留言交流~
这个问题解决了。是之前换驱动了。数据库是sqlserver2000,一开始用的是微软的驱动,后来因为不支持XA,所以换了jtds,然后参数设置不一样。
换成这样。
<bean id="dataSourceSqlServer" class="com.atomikos.jdbc.AtomikosDataSourceBean"
init-method="init" destroy-method="close">
<property name="uniqueResourceName" value="sqlserver_ds" />
<property name="xaDataSourceClassName">
<value>net.sourceforge.jtds.jdbcx.JtdsDataSource</value>
</property>
<!-- <property name="xaDataSourceClassName" value="${sqlServer.driverXA}" />-->
<property name="xaProperties">
<props>
<prop key="databaseName">HallQueueDbWasu</prop>
<prop key="serverName">127.0.0.1</prop>
<prop key="portNumber">1433</prop>
<prop key="user">sa</prop>
<prop key="password">sa</prop>
</props>
</property>
<property name="minPoolSize">
<value>1</value>
</property>
</bean> 。但是又抱另一个错误了。。。。
Caused by: com.atomikos.jdbc.AtomikosSQLException: Cannot initialize AtomikosDataSourceBean
at com.atomikos.jdbc.AtomikosSQLException.throwAtomikosSQLException(AtomikosSQLException.java:19)
at com.atomikos.jdbc.AbstractDataSourceBean.init(AbstractDataSourceBean.java:249)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1544)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
... 46 more
Caused by: com.atomikos.icatch.SysException: XAConnectionFactory: failed to create pooled connection
at com.atomikos.jdbc.AtomikosXAConnectionFactory.createPooledConnection(AtomikosXAConnectionFactory.java:42)
at com.atomikos.datasource.pool.ConnectionPool.init(ConnectionPool.java:45)
at com.atomikos.datasource.pool.ConnectionPool.<init>(ConnectionPool.java:33)
at com.atomikos.jdbc.AbstractDataSourceBean.init(AbstractDataSourceBean.java:240)
... 53 more
2014-6-19 16:25:38 org.apache.catalina.core.StandardContext start
主要是创建连接池失败了,还是配置参数的问题。
这个问题解决了。是之前换驱动了。数据库是sqlserver2000,一开始用的是微软的驱动,后来因为不支持XA,所以换了jtds,然后参数设置不一样。
换成这样。
<bean id="dataSourceSqlServer" class="com.atomikos.jdbc.AtomikosDataSourceBean"
init-method="init" destroy-method="close">
<property name="uniqueResourceName" value="sqlserver_ds" />
<property name="xaDataSourceClassName">
<value>net.sourceforge.jtds.jdbcx.JtdsDataSource</value>
</property>
<!-- <property name="xaDataSourceClassName" value="${sqlServer.driverXA}" />-->
<property name="xaProperties">
<props>
<prop key="databaseName">HallQueueDbWasu</prop>
<prop key="serverName">127.0.0.1</prop>
<prop key="portNumber">1433</prop>
<prop key="user">sa</prop>
<prop key="password">sa</prop>
</props>
</property>
<property name="minPoolSize">
<value>1</value>
</property>
</bean> 。但是又抱另一个错误了。。。。
Caused by: com.atomikos.jdbc.AtomikosSQLException: Cannot initialize AtomikosDataSourceBean
at com.atomikos.jdbc.AtomikosSQLException.throwAtomikosSQLException(AtomikosSQLException.java:19)
at com.atomikos.jdbc.AbstractDataSourceBean.init(AbstractDataSourceBean.java:249)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1544)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
... 46 more
Caused by: com.atomikos.icatch.SysException: XAConnectionFactory: failed to create pooled connection
at com.atomikos.jdbc.AtomikosXAConnectionFactory.createPooledConnection(AtomikosXAConnectionFactory.java:42)
at com.atomikos.datasource.pool.ConnectionPool.init(ConnectionPool.java:45)
at com.atomikos.datasource.pool.ConnectionPool.<init>(ConnectionPool.java:33)
at com.atomikos.jdbc.AbstractDataSourceBean.init(AbstractDataSourceBean.java:240)
... 53 more
2014-6-19 16:25:38 org.apache.catalina.core.StandardContext start
示例中的数据访问层为Hibernate,可替换为喜欢的任意的方式。
具体使用比较简单,只是需要在配置上做一些修改
具体测试源码见附件,其中核心配置如下:
<context:component-scan base-package="com.ajita.*" /> <tx:annotation-driven /> <tx:jta-transaction-manager /> <bean id="dataSourceA" class="com.atomikos.jdbc.AtomikosDataSourceBean" init-method="init" destroy-method="close"> <property name="uniqueResourceName"> <value>DataSourceA</value> </property> <property name="xaDataSourceClassName"> <value>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</value> </property> <property name="xaProperties"> <props> <prop key="databaseName">test</prop> <prop key="serverName">127.0.0.1</prop> <prop key="port">3306</prop> <prop key="user">root</prop> <prop key="password">123456</prop> <prop key="url">jdbc:mysql://127.0.0.1:3306/test</prop> </props> </property> <property name="minPoolSize"> <value>1</value> </property> </bean> <bean id="dataSourceB" class="com.atomikos.jdbc.AtomikosDataSourceBean" init-method="init" destroy-method="close"> <property name="uniqueResourceName"> <value>DataSourceB</value> </property> <property name="xaDataSourceClassName"> <value>net.sourceforge.jtds.jdbcx.JtdsDataSource</value> </property> <property name="xaProperties"> <props> <prop key="databaseName">SimpleDB</prop> <prop key="serverName">127.0.0.1</prop> <prop key="portNumber">1434</prop> <prop key="user">sa</prop> <prop key="password">123456</prop> </props> </property> <property name="minPoolSize"> <value>1</value> </property> </bean> <bean id="entityManagerFactoryA" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="persistenceXmlLocation"> <value>classpath*:persistence.xml</value> </property> <property name="persistenceUnitName" value="PersistenceUnitA" /> <property name="dataSource" ref="dataSourceA" /> <property name="jpaVendorAdapter"> <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> <property name="showSql" value="true" /> <property name="databasePlatform" value="org.hibernate.dialect.MySQL5InnoDBDialect" /> </bean> </property> </bean> <bean id="entityManagerFactoryB" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> <property name="persistenceXmlLocation"> <value>classpath*:persistence.xml</value> </property> <property name="persistenceUnitName" value="PersistenceUnitB" /> <property name="dataSource" ref="dataSourceB" /> <property name="jpaVendorAdapter"> <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> <property name="showSql" value="true" /> <property name="databasePlatform" value="org.hibernate.dialect.SQLServerDialect" /> </bean> </property> </bean> <bean id="atomikosTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager" init-method="init" destroy-method="close"> <property name="forceShutdown" value="false" /> </bean> <bean id="atomikosUserTransaction" class="com.atomikos.icatch.jta.J2eeUserTransaction"> <property name="transactionTimeout" value="300" /> </bean> <bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager" depends-on="atomikosTransactionManager,atomikosUserTransaction"> <property name="transactionManager" ref="atomikosTransactionManager" /> <property name="userTransaction" ref="atomikosUserTransaction" /> <property name="allowCustomIsolationLevels" value="true" /> </bean>
有不清楚的,欢迎留言交流~
- SimpleDemo.zip (12.4 KB)
- 下载次数: 31
评论
4 楼
johnny_56
2014-06-20
嗯。问题已解决,谢谢,是连接的问题,但是不是配置文件问题,而是数据库问题。
3 楼
Ajita
2014-06-19
johnny_56 写道
johnny_56 写道
你好,请问,我的报这个是什么原因呢。
用的是jtds1.2.7
Caused by: com.atomikos.beans.PropertyException: no writeable property 'URL' in class 'net.sourceforge.jtds.jdbcx.JtdsDataSource'
at com.atomikos.beans.PropertyUtils.getSetter(PropertyUtils.java:261)
at com.atomikos.beans.PropertyUtils.setDirectProperty(PropertyUtils.java:175)
at com.atomikos.beans.PropertyUtils.setProperty(PropertyUtils.java:85)
at com.atomikos.beans.PropertyUtils.setProperties(PropertyUtils.java:161)
at com.atomikos.jdbc.AtomikosDataSourceBean.doInit(AtomikosDataSourceBean.java:167)
at com.atomikos.jdbc.AbstractDataSourceBean.init(AbstractDataSourceBean.java:239)
用的是jtds1.2.7
Caused by: com.atomikos.beans.PropertyException: no writeable property 'URL' in class 'net.sourceforge.jtds.jdbcx.JtdsDataSource'
at com.atomikos.beans.PropertyUtils.getSetter(PropertyUtils.java:261)
at com.atomikos.beans.PropertyUtils.setDirectProperty(PropertyUtils.java:175)
at com.atomikos.beans.PropertyUtils.setProperty(PropertyUtils.java:85)
at com.atomikos.beans.PropertyUtils.setProperties(PropertyUtils.java:161)
at com.atomikos.jdbc.AtomikosDataSourceBean.doInit(AtomikosDataSourceBean.java:167)
at com.atomikos.jdbc.AbstractDataSourceBean.init(AbstractDataSourceBean.java:239)
这个问题解决了。是之前换驱动了。数据库是sqlserver2000,一开始用的是微软的驱动,后来因为不支持XA,所以换了jtds,然后参数设置不一样。
换成这样。
<bean id="dataSourceSqlServer" class="com.atomikos.jdbc.AtomikosDataSourceBean"
init-method="init" destroy-method="close">
<property name="uniqueResourceName" value="sqlserver_ds" />
<property name="xaDataSourceClassName">
<value>net.sourceforge.jtds.jdbcx.JtdsDataSource</value>
</property>
<!-- <property name="xaDataSourceClassName" value="${sqlServer.driverXA}" />-->
<property name="xaProperties">
<props>
<prop key="databaseName">HallQueueDbWasu</prop>
<prop key="serverName">127.0.0.1</prop>
<prop key="portNumber">1433</prop>
<prop key="user">sa</prop>
<prop key="password">sa</prop>
</props>
</property>
<property name="minPoolSize">
<value>1</value>
</property>
</bean> 。但是又抱另一个错误了。。。。
Caused by: com.atomikos.jdbc.AtomikosSQLException: Cannot initialize AtomikosDataSourceBean
at com.atomikos.jdbc.AtomikosSQLException.throwAtomikosSQLException(AtomikosSQLException.java:19)
at com.atomikos.jdbc.AbstractDataSourceBean.init(AbstractDataSourceBean.java:249)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1544)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
... 46 more
Caused by: com.atomikos.icatch.SysException: XAConnectionFactory: failed to create pooled connection
at com.atomikos.jdbc.AtomikosXAConnectionFactory.createPooledConnection(AtomikosXAConnectionFactory.java:42)
at com.atomikos.datasource.pool.ConnectionPool.init(ConnectionPool.java:45)
at com.atomikos.datasource.pool.ConnectionPool.<init>(ConnectionPool.java:33)
at com.atomikos.jdbc.AbstractDataSourceBean.init(AbstractDataSourceBean.java:240)
... 53 more
2014-6-19 16:25:38 org.apache.catalina.core.StandardContext start
主要是创建连接池失败了,还是配置参数的问题。
2 楼
johnny_56
2014-06-19
johnny_56 写道
你好,请问,我的报这个是什么原因呢。
用的是jtds1.2.7
Caused by: com.atomikos.beans.PropertyException: no writeable property 'URL' in class 'net.sourceforge.jtds.jdbcx.JtdsDataSource'
at com.atomikos.beans.PropertyUtils.getSetter(PropertyUtils.java:261)
at com.atomikos.beans.PropertyUtils.setDirectProperty(PropertyUtils.java:175)
at com.atomikos.beans.PropertyUtils.setProperty(PropertyUtils.java:85)
at com.atomikos.beans.PropertyUtils.setProperties(PropertyUtils.java:161)
at com.atomikos.jdbc.AtomikosDataSourceBean.doInit(AtomikosDataSourceBean.java:167)
at com.atomikos.jdbc.AbstractDataSourceBean.init(AbstractDataSourceBean.java:239)
用的是jtds1.2.7
Caused by: com.atomikos.beans.PropertyException: no writeable property 'URL' in class 'net.sourceforge.jtds.jdbcx.JtdsDataSource'
at com.atomikos.beans.PropertyUtils.getSetter(PropertyUtils.java:261)
at com.atomikos.beans.PropertyUtils.setDirectProperty(PropertyUtils.java:175)
at com.atomikos.beans.PropertyUtils.setProperty(PropertyUtils.java:85)
at com.atomikos.beans.PropertyUtils.setProperties(PropertyUtils.java:161)
at com.atomikos.jdbc.AtomikosDataSourceBean.doInit(AtomikosDataSourceBean.java:167)
at com.atomikos.jdbc.AbstractDataSourceBean.init(AbstractDataSourceBean.java:239)
这个问题解决了。是之前换驱动了。数据库是sqlserver2000,一开始用的是微软的驱动,后来因为不支持XA,所以换了jtds,然后参数设置不一样。
换成这样。
<bean id="dataSourceSqlServer" class="com.atomikos.jdbc.AtomikosDataSourceBean"
init-method="init" destroy-method="close">
<property name="uniqueResourceName" value="sqlserver_ds" />
<property name="xaDataSourceClassName">
<value>net.sourceforge.jtds.jdbcx.JtdsDataSource</value>
</property>
<!-- <property name="xaDataSourceClassName" value="${sqlServer.driverXA}" />-->
<property name="xaProperties">
<props>
<prop key="databaseName">HallQueueDbWasu</prop>
<prop key="serverName">127.0.0.1</prop>
<prop key="portNumber">1433</prop>
<prop key="user">sa</prop>
<prop key="password">sa</prop>
</props>
</property>
<property name="minPoolSize">
<value>1</value>
</property>
</bean> 。但是又抱另一个错误了。。。。
Caused by: com.atomikos.jdbc.AtomikosSQLException: Cannot initialize AtomikosDataSourceBean
at com.atomikos.jdbc.AtomikosSQLException.throwAtomikosSQLException(AtomikosSQLException.java:19)
at com.atomikos.jdbc.AbstractDataSourceBean.init(AbstractDataSourceBean.java:249)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1544)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1485)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1417)
... 46 more
Caused by: com.atomikos.icatch.SysException: XAConnectionFactory: failed to create pooled connection
at com.atomikos.jdbc.AtomikosXAConnectionFactory.createPooledConnection(AtomikosXAConnectionFactory.java:42)
at com.atomikos.datasource.pool.ConnectionPool.init(ConnectionPool.java:45)
at com.atomikos.datasource.pool.ConnectionPool.<init>(ConnectionPool.java:33)
at com.atomikos.jdbc.AbstractDataSourceBean.init(AbstractDataSourceBean.java:240)
... 53 more
2014-6-19 16:25:38 org.apache.catalina.core.StandardContext start
1 楼
johnny_56
2014-06-19
你好,请问,我的报这个是什么原因呢。
用的是jtds1.2.7
Caused by: com.atomikos.beans.PropertyException: no writeable property 'URL' in class 'net.sourceforge.jtds.jdbcx.JtdsDataSource'
at com.atomikos.beans.PropertyUtils.getSetter(PropertyUtils.java:261)
at com.atomikos.beans.PropertyUtils.setDirectProperty(PropertyUtils.java:175)
at com.atomikos.beans.PropertyUtils.setProperty(PropertyUtils.java:85)
at com.atomikos.beans.PropertyUtils.setProperties(PropertyUtils.java:161)
at com.atomikos.jdbc.AtomikosDataSourceBean.doInit(AtomikosDataSourceBean.java:167)
at com.atomikos.jdbc.AbstractDataSourceBean.init(AbstractDataSourceBean.java:239)
用的是jtds1.2.7
Caused by: com.atomikos.beans.PropertyException: no writeable property 'URL' in class 'net.sourceforge.jtds.jdbcx.JtdsDataSource'
at com.atomikos.beans.PropertyUtils.getSetter(PropertyUtils.java:261)
at com.atomikos.beans.PropertyUtils.setDirectProperty(PropertyUtils.java:175)
at com.atomikos.beans.PropertyUtils.setProperty(PropertyUtils.java:85)
at com.atomikos.beans.PropertyUtils.setProperties(PropertyUtils.java:161)
at com.atomikos.jdbc.AtomikosDataSourceBean.doInit(AtomikosDataSourceBean.java:167)
at com.atomikos.jdbc.AbstractDataSourceBean.init(AbstractDataSourceBean.java:239)
发表评论
-
[转]redis中各种数据类型对应的jedis操作命令
2014-07-17 17:24 1944一、常用数据类型简介: redis常用五种数据类 ... -
CXF记录WebService的soap日志
2012-12-11 14:28 7482cxf本身就支持日志功能,能打印传入传出的soap报文,但是需 ... -
上传一个基于Jax-ws的WebService
2012-12-04 19:08 1561留作备忘! 基于Jax-ws的WebService。发布至T ... -
上传一个最简单的cxf结合spring的Java WebService例子
2012-12-04 13:04 2625备忘!附件为项目。hello world 版本的。 指定了命 ... -
Tomcat集群——使用apache负载
2012-11-06 00:05 4431使用Apache做Tomcat负载的好处: 1. 提升对静态文 ... -
Tomcat集群(使用了nginx负载)
2012-11-04 17:26 7933前一篇文章介绍了使用nginx进行负载均衡的方式,本篇开始搭建 ... -
Maven培训分享
2012-10-30 22:45 3427最近准备了一个Maven讲解的ppt,初稿,传上来分享一下。顺 ... -
使用nexus搭建内部Maven仓库及使用简介
2012-06-20 18:07 10109由于项目组需要,要搭 ... -
基于Mina的Http Server以及简单的Http请求客户端
2012-03-22 20:37 27910目的: Java平台下的内部组件之间的通信。 ... -
Java发送邮件
2012-03-08 10:10 1183使用Java Mail原生API发送邮件(也可以用apache ... -
XStream转换Java对象与XML
2012-03-07 09:32 307461.引入需要的jar包,在pom.xml中配置依赖 < ... -
简单的log4j.properties示例
2012-02-23 23:55 4426##屏幕日志 log4j.appender.stdout ... -
Spring集成Hibernate写SQLServer
2012-02-22 23:42 4197一、需求:由于本人要做一个集中告警服务端,所以需要接收HTTP ... -
基于Spring MVC接收并处理HTTP请求
2012-02-07 10:08 4329要开发一个接收HTTP请求的服务端,由于端口的限制,只 ...
相关推荐
1. Atomikos:这是一个开源的JTA实现,提供了一种在Spring Boot中实现分布式事务的方式。 2. Bitronix:另一种JTA实现,也可以与Spring Boot集成,处理分布式事务。 要启用JTA事务管理,你需要: 1. 添加Atomikos...
Atomikos通过实现JTA规范,允许应用程序在不同的数据源之间进行跨系统事务处理。 JPA是Java平台上的标准ORM(Object-Relational Mapping)框架,用于管理和持久化Java对象到关系数据库。它提供了一种抽象层,使得...
本教程将详细讲解如何使用Spring Boot、Druid和Mybatis来实现JTA(Java Transaction API)分布式事务。这是一项高级技术,它允许在多数据库环境或者微服务架构中进行一致性的数据操作。 首先,让我们了解什么是JTA...
通过上述配置,我们可以看到如何在一个Spring应用程序中配置多个数据源,并使用JTA进行跨数据源的事务管理。这种配置方式非常灵活,可以适应复杂的企业级应用需求。在实际应用中,根据具体的应用场景和性能需求,还...
本教程将深入探讨如何使用Spring框架、Java Transaction API (JTA) 和 Java Open Transaction Manager (JOTM) 来实现这样的分布式事务管理。 首先,我们来了解一下JTA。JTA是Java平台的标准事务API,它允许应用程序...
1. 引入依赖:确保你的项目包含了JTA相关的库,例如Atomikos或Bitronix,它们是开源的JTA实现。在Maven项目中,你需要在pom.xml中添加对应的依赖。 2. 配置JTA Manager:在Spring的配置文件(如`applicationContext...
在MySQL中,你需要创建至少两个数据库来演示JTA事务的跨库操作。确保这两个数据库的连接信息已经配置好,以便Spring可以访问它们。 #### 1.4. 配置Spring 在Spring的配置文件(如`applicationContext.xml`)中,你...
在Java开发中,事务管理是确保数据一致性与完整性...然而,需要注意的是,JTA事务管理相对于本地事务会有一定的性能开销,因此在不需要分布式事务的情况下,可以选择使用Spring的本地事务管理,以提高系统的运行效率。
在Spring框架中,可以通过配置使Spring的声明式事务管理支持JTA,实现跨多个数据源的事务管理。 集成这四个技术的步骤通常包括: 1. **配置JBoss**:首先,你需要将Spring和Hibernate的相关库添加到JBoss的类路径...
- **Atomikos、Bitronix等JTA实现**:这些第三方库实现了JTA规范,可以用来管理分布式事务。 6. **配置Spring JTA事务**:在Spring的配置文件中,你需要配置 `UserTransaction` 和 `TransactionManager`,并启用...
Java JTA,全称为Java Transaction API,是Java平台上的事务处理标准,用于管理跨系统或跨资源的事务。它提供了一种统一的方式来控制应用程序中的事务,使得开发者可以在不同的数据库、消息队列等资源之间进行协调,...
如何处理跨库事物:spring + jtom 的jta事务是个很好的选择. 这个源码示例非常不错,包括所有的源码和jar包,下载后eclipse 或 myeclipse 导入就能用。 里面有详细的说明和注释,欢迎下载传播。有问题请在评价中...
`JTA(Java Transaction API)`是Java平台提供的一种标准,用于处理跨多个数据存储的事务管理。这篇博客"多数据源事务jta测试"可能探讨了如何在Java环境中利用JTA来实现对不同数据库的事务一致性。 JTA允许应用程序...
Atomikos是一个开源的JTA实现,它提供了一套完整的事务管理解决方案,包括事务协调器和服务,以支持分布式事务。在项目中引入`transactions-jta.jar`、`transactions.jar`、`atomikos-util.jar`等Atomikos相关的库,...
为了解决这个情况,我们需要对JtaTransactionManager进行扩展,添加一个`switchDb`属性来区分jtaTx事务和singleTx事务,并在执行跨库操作时动态切换数据库连接。 参考蔡志国和户启龙的思路,可以改写`...
使用 SpringBoot JTA Atomikos 实现分布式事务管理可以解决多个数据库之间的事务问题。例如,我们可以使用 @Transactional 注解来标记需要事务管理的方法: ```java @Service public class MyService { @...
// 执行一些跨库操作 // 如果在这过程中出现异常,Atomikos会回滚所有涉及的事务 } } ``` 通过以上步骤,我们成功地在SpringBoot应用中集成了Atomikos,实现了分布式事务管理。这种方式允许我们在多数据库或多...
本案例主要探讨如何利用Spring Boot、Atomikos、JTA(Java Transaction API)、Hibernate以及MyBatis,结合MySQL数据库,实现一个跨数据源的分布式事务解决方案。 首先,Spring Boot是一个基于Spring框架的快速开发...