`
fangyinhui
  • 浏览: 13657 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

jta 多数据远

    博客分类:
  • java
jta 
阅读更多

 

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"

xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"

xsi:schemaLocation="

http://www.springframework.org/schema/beans 

http://www.springframework.org/schema/beans/spring-beans-2.0.xsd

http://www.springframework.org/schema/tx 

http://www.springframework.org/schema/tx/spring-tx-2.0.xsd

http://www.springframework.org/schema/aop 

http://www.springframework.org/schema/aop/spring-aop-2.0.xsd

http://www.springframework.org/schema/context

http://www.springframework.org/schema/context/spring-context-2.0.xsd">

 

<!-- <bean class="com.common.processor.PrivilegetHandler"></bean>

 -->

 

<bean id="jotm" class="org.springframework.transaction.jta.JotmFactoryBean" />

<bean id="txManager"

class="org.springframework.transaction.jta.JtaTransactionManager">

<property name="userTransaction" ref="jotm"></property>

</bean>

<bean id="abstractTransactionProxy" abstract="true"

class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">

<property name="transactionManager">

<ref bean="transactionManager" />

</property>

<property name="transactionAttributeSource">

<bean

class="org.springframework.transaction.annotation.AnnotationTransactionAttributeSource" />

</property>

</bean>

 

<bean id="abstractTmsSessionProxy" abstract="true">

<property name="sessionFactory" ref="tmsSessionFactory" />

</bean>

 

<bean id="abstractWmsSessionProxy" abstract="true">

<property name="sessionFactory" ref="wmsSessionFactory" />

</bean>

 

<bean id="abstractFmsSessionProxy" abstract="true">

<property name="sessionFactory" ref="fmsSessionFactory" />

</bean>

 

 

 

<!-- WMS data source -->

<bean id="innerDataSourceA" class="org.enhydra.jdbc.standard.StandardXADataSource"

destroy-method="shutdown">

<property name="transactionManager">

<ref local="jotm" />

</property>

<property name="driverName">

<value>com.mysql.jdbc.Driver</value>

</property>

<property name="url">

<value>jdbc:mysql://192.168.1.110:3306/test1?autoReconnect=true&amp;zeroDateTimeBehavior=convertToNull&amp;characterEncoding=utf-8</value>

</property>

<property name="user">

<value>root</value>

</property>

<property name="password">

<value>root</value>

</property>

</bean>

 

<bean id="dataSourceA" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource"

destroy-method="shutdown">

<property name="dataSource">

<ref local="innerDataSourceA" />

</property>

<property name="transactionManager">

<ref local="jotm" />

</property>

<property name="maxSize">

<value>10</value>

</property>

<property name="user">

<value>root</value>

</property>

<property name="password">

<value>root</value>

</property>

</bean>

 

<bean id="sessionFactoryA"

class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

<property name="dataSource" ref="dataSourceA" />

<property name="mappingResources">

<list>

<value>com/systemmr/bean/hbm/User.hbm.xml</value>

</list>

</property>

<property name="hibernateProperties">

<props>

<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>

<prop key="hibernate.hbm2ddl.auto">update</prop>

<prop key="hibernate.transaction.factory_class">org.springframework.orm.hibernate3.SpringTransactionFactory</prop>

                <prop key="hibernate.transaction.manager_lookup_class">org.springframework.orm.hibernate3.LocalTransactionManagerLookup</prop>

<prop key="jta.UserTransaction">java:comp/UserTransaction</prop>

</props>

</property>

<property name="jtaTransactionManager">

<ref bean="jotm" />

</property>

</bean>

 

<!--TMS data source -->

<bean id="innerDateSourceB" class="org.enhydra.jdbc.standard.StandardXADataSource"

destroy-method="shutdown">

<property name="transactionManager">

<ref local="jotm" />

</property>

<property name="driverName">

<value>com.mysql.jdbc.Driver</value>

</property>

<property name="url">

<value>jdbc:mysql://192.168.1.110:3306/test2?autoReconnect=true&amp;zeroDateTimeBehavior=convertToNull&amp;characterEncoding=utf-8</value>

</property>

<property name="user">

<value>root</value>

</property>

<property name="password">

<value>root</value>

</property>

</bean>

 

<bean id="dataSourceB" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource"

destroy-method="shutdown">

<property name="dataSource">

<ref local="innerDateSourceB" />

</property>

<property name="transactionManager">

<ref local="jotm" />

</property>

<property name="maxSize">

<value>10</value>

</property>

<property name="user">

<value>root</value>

</property>

<property name="password">

<value>root</value>

</property>

</bean>

 

 

<bean id="sessionFactoryB"

class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

<property name="dataSource" ref="dataSourceB" />

<property name="mappingResources">

<list>

<value>com/systemmr/bean/hbm/User.hbm.xml</value>

</list>

</property>

<property name="hibernateProperties">

<props>

<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>

<prop key="hibernate.hbm2ddl.auto">update</prop>

<prop key="hibernate.transaction.factory_class">org.springframework.orm.hibernate3.SpringTransactionFactory</prop>

                <prop key="hibernate.transaction.manager_lookup_class">org.springframework.orm.hibernate3.LocalTransactionManagerLookup</prop>

<prop key="jta.UserTransaction">java:comp/UserTransaction</prop>

</props>

</property>

<property name="jtaTransactionManager">

<ref bean="jotm" />

</property>

</bean>

<!-- 定义事务管理器,使用适用于Hibernte的事务管理器 -->

<!-- <bean id="transactionManager"

class="org.springframework.orm.hibernate3.HibernateTransactionManager">

HibernateTransactionManager bean需要依赖注入一个SessionFactory bean的引用

<property name="sessionFactory">

<ref local="sessionFactory" />

</property>

</bean> -->

<bean id="transactionInterceptor"

class="org.springframework.transaction.interceptor.TransactionInterceptor">

<property name="transactionManager" ref="txManager" />

<property name="transactionAttributes">

<props>

<!-- 其他方法,采用required的事务策略 -->

<!-- <prop key="insert*">PROPAGATION_REQUIRED</prop> -->

<!-- <prop key="update*">PROPAGATION_REQUIRED</prop> -->

<!-- <prop key="save*">PROPAGATION_REQUIRED</prop> -->

<!-- <prop key="add*">PROPAGATION_REQUIRED</prop> -->

<!-- <prop key="edit*">PROPAGATION_REQUIRED</prop> -->

<!-- <prop key="create*">PROPAGATION_REQUIRED</prop> -->

<!-- <prop key="delete*">PROPAGATION_REQUIRED</prop> -->

<!-- 所有以find开头的方法,采用required的事务策略,并且只读 -->

<prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>

<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>

<prop key="doQuery*">PROPAGATION_REQUIRED,readOnly</prop>

<prop key="query*">PROPAGATION_REQUIRED,readOnly</prop>

<prop key="list*">PROPAGATION_REQUIRED,readOnly</prop>

<prop key="*">PROPAGATION_REQUIRED</prop>

</props>

</property>

</bean>

 

<bean

class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">

<property name="beanNames">

<value>*Service</value>

</property>

<property name="interceptorNames">

<list>

<value>transactionInterceptor</value>

<!-- 此处增加新的Interceptor -->

</list>

</property>

</bean>

 

<!-- 定义DAO bean的事务代理 -->

<!-- <bean id="personDao" -->

<!-- class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> -->

<!-- 为事务代理bean注入事务管理器 -->

<!-- <property name="transactionManager"> -->

<!-- <ref bean="transactionManager" /> -->

<!-- </property> -->

<!-- 设置事务属性 -->

<!-- <property name="transactionAttributes"> -->

<!-- <props> -->

<!-- 所有以find开头的方法,采用required的事务策略,并且只读 -->

<!-- <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop> -->

<!-- <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop> -->

<!-- <prop key="doQuery*">PROPAGATION_REQUIRED,readOnly</prop> -->

<!-- <prop key="query*">PROPAGATION_REQUIRED,readOnly</prop> -->

<!-- <prop key="list*">PROPAGATION_REQUIRED,readOnly</prop> -->

<!-- 其他方法,采用required的事务策略 -->

<!-- <prop key="*">PROPAGATION_REQUIRED</prop> -->

<!-- </props> -->

<!-- </property> -->

<!-- 为事务代理bean设置目标bean -->

<!-- <property name="target"> -->

<!-- <ref local="basicDao" /> -->

<!-- </property> -->

<!-- </bean> -->

 

<!-- Autowired -->

<bean

class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor" />

 

<bean id="hibernateTemplateA" class="org.springframework.orm.hibernate3.HibernateTemplate">

<property name="sessionFactory">

<ref bean="sessionFactoryA" />

</property>

</bean>

<bean id="hibernateTemplateB" class="org.springframework.orm.hibernate3.HibernateTemplate">

<property name="sessionFactory">

<ref bean="sessionFactoryB" />

</property>

</bean>

 

<bean id="testUserService" class="com.systemmr.service.impl.TestUserServiceImpl">

<property name="hibernateTemplateA" ref="hibernateTemplateA"></property>

<property name="hibernateTemplateB" ref="hibernateTemplateB"></property>

</bean>

</beans>

 

分享到:
评论

相关推荐

    Springboot 动态多数据源 jta分布式事务

    本资源针对的是Spring Boot动态多数据源和JTA(Java Transaction API)分布式事务的实现,对于初学者来说非常实用。下面我们将深入探讨这些知识点。 首先,让我们了解一下Spring Boot的多数据源。在许多业务场景下...

    springboot整合JTA组件,多数据源事务管理

    JTA即Java-Transaction-API,JTA允许应用程序执行分布式事务处理,即在两个或多个网络计算机资源上访问并且更新数据。JDBC驱动程序对JTA的支持极大地增强了数据访问能力。 XA协议是数据库层面的一套分布式事务管理...

    多数据源事务之解决方案jta+atomikos

    "多数据源事务之解决方案jta+atomikos"这个主题正是针对这一挑战提出的。JTA(Java Transaction API)和Atomikos是两个关键的组件,它们一起为Java应用提供了强大的分布式事务管理能力。 首先,JTA是Java平台企业版...

    springmvc+mybatis+jta 多数据源配置

    Spring MVC、MyBatis 和 JTA(Java Transaction API)的集成是企业级应用中常见的技术组合,用于构建可扩展且支持多数据源的应用程序。在本项目中,我们看到一个配置了多数据源的环境,其中Spring MVC作为前端控制器...

    springboot整合jta实现多数据源事务管理

    在Spring Boot应用中,整合JTA(Java Transaction API)实现多数据源事务管理是一个常见的需求,特别是在分布式系统中,为了确保数据的一致性和完整性。本文将深入探讨如何配置和使用Spring Boot与JTA来管理多个...

    多数据源事务jta测试

    `JTA(Java Transaction API)`是Java平台提供的一种标准,用于处理跨多个数据存储的事务管理。这篇博客"多数据源事务jta测试"可能探讨了如何在Java环境中利用JTA来实现对不同数据库的事务一致性。 JTA允许应用程序...

    SpringBoot+JPA+JTA(可选)+JdbcTemplate多数据源配置源码

    本资源包含了两个子项目,分别进行了springboot+jpa+jdbcTemplate的多数据源独立事务配置和jta分布式事务配置,并针对不同的情况编写了事务配置测试接口,还演示了JPA的domain一对多自动生成数据库表且不生成数据库...

    spring+mybatis+jta实现多数据源的分布式事物(代码可以直接运行)

    本示例项目"spring+mybatis+jta实现多数据源的分布式事务"提供了一种解决方案,利用Spring框架、MyBatis持久层框架以及Java Transaction API (JTA)来处理跨多个数据源的事务一致性。以下是对这一技术栈及其应用的...

    springboot+mybatis+jta+atomikos解决多数据源事务问题.pdf

    本篇文档主要讲述如何使用Spring Boot结合MyBatis、JTA(Java Transaction API)以及Atomikos实现多数据源的事务管理。 ### Spring Boot框架 Spring Boot是Spring家族中的一个全新框架,用于简化新Spring应用的...

    多数据源 更新 spring jta java jotm

    本文将深入探讨如何使用Spring、Java Transaction API (JTA) 和 Java Object Transaction Manager (JOTM) 实现多数据源更新的解决方案。 首先,让我们理解什么是多数据源。在传统的单数据源环境中,应用程序通常...

    Spring boot+Atomikos+JTA+Hibernate+mybatis+MySQL实现分布式事务+多数据源

    Atomikos是一款开源的JTA事务管理器,它支持分布式事务处理,使得在多个数据源之间进行事务操作成为可能。JTA是Java平台中的标准API,用于管理跨越多个资源(如数据库或消息队列)的事务。Atomikos通过实现JTA规范,...

    使用springboot+jta+atomikos配置多数据源事务

    本教程将详细介绍如何使用Spring Boot结合JTA(Java Transaction API)和Atomikos来配置多数据源事务。 首先,我们需要理解JTA的含义。JTA是Java平台的标准,用于管理跨多个数据源的分布式事务。它允许应用程序在一...

    Spring boot+Atomikos+JTA+Hibernate+MySQL实现分布式事务+多数据源(可运行)

    本项目使用Spring Boot、Atomikos、JTA(Java Transaction API)、Hibernate和MySQL来实现分布式事务处理和多数据源管理,以确保在多个数据库操作之间保持事务的ACID特性。 首先,Spring Boot作为微服务开发的主流...

    springboot+jta+atomikos

    它允许应用程序在多个数据源或服务之间进行协调,确保事务的原子性、一致性、隔离性和持久性(ACID属性)。通过JTA,开发者可以跨数据库、消息队列等不同资源执行全局事务,使得分布式环境下的数据操作更加一致和...

    Java远程终端工具 JTA

    3. **多线程(Multithreading)**:由于JTA可能会同时处理多个远程连接,因此多线程是其核心部分。每个连接通常会在一个独立的线程中运行,以确保并发性和响应性。 4. **安全性**:由于涉及到远程访问,JTA需要实现...

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

    1.多数据源配置,采用方式:直接配置两个不同的数据源,不同的sessionFactory。 2.Spring+Jotm整合实现JTA分布式事务,应用场景如转账等,同一事务内完成db1用户加100元、db2用户减100元。 3.Spring+Junit4单元...

    quartz_jta_collections

    在实际应用中,JTA的引入意味着Quartz可以跨多个资源(如数据库或消息队列)执行事务,这对于在复杂的分布式系统中保持数据一致性至关重要。而Commons-Collections则为这些操作提供了更高效的数据结构和算法支持。 ...

    jta.jar包;jta.jar包

    4. **XA Transactions**: JTA使用X/Open XA协议来支持两阶段提交(2PC)过程,确保跨多个资源的事务一致性。`XAResource`接口是实现这一协议的关键。 5. **TransactionSynchronizationRegistry**: 提供了在事务上...

    最新的JTA规范.pdf

    JTA的主要目标是简化在复杂分布式环境下,跨多个资源管理器进行一致性和可靠性操作的过程。它通过定义一系列接口和协议,使得开发人员能够更专注于业务逻辑的实现,而不必深入理解底层的事务管理和并发控制机制。 #...

Global site tag (gtag.js) - Google Analytics