`
Java_Fan
  • 浏览: 81655 次
  • 性别: Icon_minigender_1
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

spring集成jotm实现JTA分布式事务管理

 
阅读更多

下载jotm-2.0.11.MR5,将其lib下的jar包引入到project 的类路径下:


在applicationContext.xml中配置如下:

	<!-- jotm实体类 -->
	<bean id="jotm" class="org.springframework.transaction.jta.JotmFactoryBean" />
	
	<!-- orcle数据源 -->
	<bean id="oracleJta" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource" destroy-method="shutdown">  
		<property name="dataSource">
			<bean class="org.enhydra.jdbc.standard.StandardXADataSource" destroy-method="shutdown">
				<property name="transactionManager" ref="jotm"/>
                <property name="driverName" value="oracle.jdbc.driver.OracleDriver"/>
                <property name="url" value="jdbc:oracle:thin:@168.9.202.49:1521:test"/>
                <property name="user" value="orac"/>
                <property name="password" value="orac"/>
            </bean>
        </property>
        <property name="user" value="orac"/>
        <property name="password" value="orac"/>
	</bean>
	<!-- mysql数据源 -->
	<bean id="mysqlJta" class="org.enhydra.jdbc.pool.StandardXAPoolDataSource" destroy-method="shutdown">  
		<property name="dataSource">
			<bean class="org.enhydra.jdbc.standard.StandardXADataSource" destroy-method="shutdown">
				<property name="transactionManager" ref="jotm"/>
                <property name="driverName" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:MySQL://localhost:3309/test"/>
                <property name="user" value="root"/>
                <property name="password" value="mysql"/>
            </bean>
        </property>
        <property name="user" value="root"/>
        <property name="password" value="mysql"/>
	</bean>
	
	<!-- jta事务管理器 -->
	<bean id="jtaManager" class="org.springframework.transaction.jta.JtaTransactionManager">
		<property name="userTransaction" ref="jotm"/> <!-- 指定userTransaction属性引用jotm本地实例 -->
	</bean>
	
	<!-- JTA事务传播特性 -->
    <tx:advice id="txAdviceJta" transaction-manager="txManager">
        <tx:attributes>
         <tx:method name="Jta*"     isolation="DEFAULT" propagation="REQUIRED" rollback-for="Exception"/>
         <tx:method name="*" read-only="true"/> 
        </tx:attributes>
    </tx:advice>
	
	<aop:config>
        <aop:advisor pointcut="execution(* com.xxxxl.service.impl..*(..))"   advice-ref="txAdviceJta" />
    </aop:config>
	
	<bean id="testMysqlDao" class="com.xxxxl.TestMysqlDaoImpl" scope="prototype">
        <property name="dataSource" ref="mysqlJta"></property>
    </bean>
    <bean id="testOracleDao" class="com.xxxxl.testOracleDaoImpl" scope="prototype">
        <property name="dataSource" ref="oracleJta"></property>
    </bean>

这就将事务进行了配置管理,如果想实现更为灵活更为细小的事务管理那么则不用配置事务的传播特性(<tx:advice>标签中的配置)

和控制反转(<aop:config>标签中的部分),需要在代码中通过DataSourceTransactionManager事务管理器类进行事务管理。

分享到:
评论

相关推荐

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

    对于分布式事务,Spring支持JTA事务管理,并且可以无缝集成JOTM。 1. **配置JOTM**:首先,你需要在项目的类路径下添加JOTM的依赖库。然后,在Spring的配置文件中定义JOTM的事务管理器 bean,例如: ```xml ...

    Spring+JOTM 分布式事务管理

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

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

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

    Spring+iBatis+JOTM实现JTA事务

    JOTM(Java Open Transaction Manager)是一个开源的JTA事务管理器,可以在非J2EE环境下提供分布式事务服务。本篇文章将详细讲解如何利用Spring+iBatis+JOTM来实现JTA事务。 首先,我们需要理解JTA的核心概念。JTA...

    使用JOTM实现分布式事务管理(多数据源)

    这篇博客文章“使用JOTM实现分布式事务管理(多数据源)”将深入探讨如何利用JOTM来处理复杂的分布式环境中的事务。 首先,理解JTA是至关重要的。JTA是Java平台的标准,定义了API,使得应用开发者可以控制跨数据库、...

    Spring分布式事务实现

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

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

    JOTM是Java平台上的一个开放源代码事务管理器,它遵循JTA(Java Transaction API)标准,用于处理分布式事务。在Spring中集成JOTM可以提供更高级别的事务控制,确保在多数据源环境下事务的一致性和完整性。 首先,...

    Java分布式开发spring+jta+jotm

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

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

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

    多数据源 更新 spring jta java jotm

    在Spring中,可以通过集成JOTM来实现JTA的功能。JOTM是一个开源的Java事务管理器,符合X/Open XA规范,可以处理跨多个资源的事务。 要在Spring中配置JOTM,首先添加JOTM和Spring的JTA依赖到项目中。然后,定义一个`...

    分布式事务JTA之实践:Spring+ATOMIKOS

    本篇文章将探讨如何在Java环境中,利用Spring框架和Atomikos这样的第三方工具实现分布式事务管理,即JTA(Java Transaction API)的实践。 JTA是Java平台提供的一种标准API,用于管理跨越多个资源(如数据库、消息...

    在Spring中使用JTA事务管理

    在Spring框架中,JTA(Java Transaction API)事务管理是一种用于处理分布式事务的高级机制,它允许应用程序在多个数据源之间进行协调的事务操作。本文将详细介绍如何在Spring中使用JTA事务管理,包括通过集成JOTM...

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

    在Spring中,通过集成JOTM,可以实现全局的事务控制,确保在多资源操作中保持数据的一致性。 **集成步骤**: 1. **添加依赖**:首先,项目需要在构建配置(如pom.xml或build.gradle)中引入Spring 3.0.5和JOTM的...

    JOTM简单测试DEMO(不含jar包)

    这个DEMO可以帮助开发者理解如何在实际项目中集成JOTM和Spring进行分布式事务处理。需要注意的是,虽然DEMO中没有包含jar包,但你仍需自行获取并添加到项目中,否则无法正常运行。在实践中,根据具体的业务需求和...

    spring-hibernate-jotm 例子

    JOTM是Java事务API(JTA)的一个开源实现,用于管理跨多个资源(如数据库和消息队列)的分布式事务。在Spring中,JOTM可以作为全局事务管理器,处理跨越不同数据源的事务。当应用程序需要在多个数据库或者服务之间...

    spring对多个数据库进行事务管理.doc

    对于多个数据库的事务管理,Spring主要依赖于JTA(Java Transaction API)和XAResource接口来实现分布式事务。然而,JTA的XA事务通常在J2EE环境下工作,需要容器支持,比如JBoss、WebLogic等。在J2SE环境中,Spring...

    jotm 的 jar

    JOTM(Java Open Transaction Manager)是一个开源的Java事务管理器,它实现了Java Transaction API (JTA) 和 Java Transaction Service (JTS) 规范。JTA 是Java平台企业版(Java EE)中的核心组件,它允许应用程序...

    Spring框架技术

    在Spring中,事务管理是其重要特性,尤其对于大型分布式系统,JTA(Java Transaction API)事务管理显得尤为重要,因为它支持跨多个数据源的分布式事务处理。 在传统的Java EE应用服务器环境中,如WebLogic、...

    开源事务管理器 JOTM.7z

    开源事务管理器 JOTM 是一个基于 Java 的开放源代码事务处理系统,它遵循 Java Transaction API (JTA) 标准,为分布式环境中的应用程序提供事务管理服务。JOTM 提供了高度可配置和可扩展的框架,使得开发者能够在...

    基于Java的实例源码-开源事务管理器 JOTM.zip

    Java开源事务管理器JOTM(Java Open Transaction Manager)是一个强大的、完全符合X/Open XA规范的事务管理器,它提供了分布式事务处理的能力。在Java应用程序中,事务管理是确保数据一致性、完整性和原子性的重要...

Global site tag (gtag.js) - Google Analytics