`
madrocket
  • 浏览: 17305 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

全局事务jta小探(二)

阅读更多

 

对应设置的xml

<jdbc-connection-pool allow-non-component-callers="false" associate-with-thread="false" connection-creation-retry-attempts="0" connection-creation-retry-interval-in-seconds="10" connection-leak-reclaim="false" connection-leak-timeout-in-seconds="0" connection-validation-method="auto-commit" datasource-classname="oracle.jdbc.pool.OracleDataSource" fail-all-connections="false" idle-timeout-in-seconds="300" is-connection-validation-required="true" is-isolation-level-guaranteed="false" lazy-connection-association="false" lazy-connection-enlistment="false" match-connections="false" max-connection-usage-count="0" max-pool-size="32" max-wait-time-in-millis="60000" name="itown" non-transactional-connections="false" pool-resize-quantity="2" res-type="javax.sql.DataSource" statement-timeout-in-seconds="-1" steady-pool-size="8" validate-atmost-once-period-in-seconds="0" wrap-jdbc-objects="false">

      <property name="DataSourceName" value="OracleDataSource"/>

      <property name="ImplicitCachingEnabled" value="false"/>

      <property name="NetworkProtocol" value="tcp"/>

      <property name="LoginTimeout" value="0"/>

      <property name="URL" value="dbc:oracle:thin:@localhost:1521:ityc"/>

      <property name="User" value="itown"/>

      <property name="ExplicitCachingEnabled" value="false"/>

      <property name="PortNumber" value="0"/>

      <property name="MaxStatements" value="0"/>

      <property name="Password" value="itown"/>

    </jdbc-connection-pool>

 

 

 

 

<jdbc-resource enabled="true" jndi-name="jdbc/wfmsDataSource" object-type="user" pool-name="itown"/>

 

 

spring的配置(常规的jdni的配置)

 

 

 

 

采用的是springdefault-autowire="byName"属性通过beanid值进行自动匹配

 

<bean id="dataSource"  class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiName">
            <value>  java:comp/env/jdbc/feng  </value>
        </property>
</bean>

 

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"/>

 

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <property name="mappingJarLocations">
            <list>
                <value>WEB-INF/lib/jarname _*.jar</value>
            </list>
        </property>
        <property name="mappingDirectoryLocations">
            <list>
                <value>WEB-INF/mappings</value>
            </list>
        </property>
        <property name="hibernateProperties">
            <props>
                <prop key="hibernate.dialect"> org.hibernate.dialect.Oracle9iDialect </prop>
                <prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
                <prop key="hibernate.hibernate.cglib.use_reflection_optimizer">false</prop>
                <prop key="hibernate.hbm2ddl.auto"> update </prop>
                <prop key="hibernate.cache.use_query_cache">true</prop>
                <prop key="hibernate.show_sql">false</prop>
                <prop key="hibernate.connection.release_mode">after_transaction</prop>
            </props>
        </property>
    </bean>

 

<bean id="baseJdbcDAO" class=" com.company.module.funciton.dao.jdbc.BaseJdbcDAO"/>

 

<bean id="BService" class="com.company.module.funciton.services.scheduler.SchedulerServiceImpl"/>

 

 

获取jdni和事务

Context initCtx = new InitialContext();

            ut = (UserTransaction) initCtx.lookup("java:comp/UserTransaction");

            Context envCtx = (Context) initCtx.lookup("java:comp/env");

            DataSource ds = (DataSource) envCtx.lookup("jdbc/wfmsDataSource");

            out.println("<<< before lookup(\"java:comp/UserTransaction\" >>>");

 

ut.begin()

ut.commit();

ut.rollback();

 

详细代码:见附录

  • 大小: 1.2 KB
  • 大小: 8.6 KB
  • 大小: 3.3 KB
  • 大小: 4.7 KB
  • 大小: 5.3 KB
  • 大小: 5.3 KB
  • 大小: 6.7 KB
分享到:
评论

相关推荐

    多数据源事务jta测试

    1. **配置数据源**:为每个数据库创建独立的数据源,并确保它们支持JTA事务。 2. **注册XAResource**:将每个数据源作为XAResource注册到事务协调器。 3. **开始事务**:通过UT接口启动一个新的全局事务。 4. **执行...

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

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

    事务处理:JTA事务

    JTA(Java Transaction API) 为 J2EE 平台提供了分布式事务服务。  要用 JTA 进行事务界定,应用程序要调用 javax.transaction.UserTransaction 接口中的方法。

    JDBC事务 JTA事务 传播特性 隔离级别

    **JTA事务**则适用于分布式环境,可以跨越多个数据源管理事务。JTA通过`UserTransaction`接口提供事务控制,支持两阶段提交(2PC)协议。在2PC中,事务处理监视器(TPM)先询问所有资源管理器(如数据库)是否准备好...

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

    Spring Boot支持JTA事务管理,主要通过以下组件实现: 1. Atomikos:这是一个开源的JTA实现,提供了一种在Spring Boot中实现分布式事务的方式。 2. Bitronix:另一种JTA实现,也可以与Spring Boot集成,处理分布式...

    JTA分布式事务使用示例代码

    此外,JTA还支持两阶段提交(2PC)协议,以协调不同资源的提交过程,确保全局一致性。 总之,JTA分布式事务的示例代码展示了如何在Java环境中处理跨多个数据源的事务,保证在分布式系统中的数据一致性。理解和掌握...

    JDBC事务和JTA(XA)事务

    使用JTA事务可以确保分布式事务的一致性和可靠性,例如,在一个分布式事务中,如果某个资源管理器执行失败,可以使用rollback()方法来回滚事务,以确保分布式事务的一致性。 JTA事务工作流程 JTA事务工作流程可以...

    使用JTA实现跨库事务

    在提供的"SimpleDemo"示例中,可能包含了一个简单的JTA事务管理的例子,比如如何在Java代码中启动和结束一个事务,以及如何在事务中操作数据库。具体实现细节可能包括使用JPA、JDBC或其他持久化框架与JTA集成的方法...

    Spring配置JTA事务管理

    本篇文章将深入探讨如何在Spring中配置JTA事务管理,以实现跨数据库和资源的事务一致性。 首先,让我们了解JTA的基本概念。JTA是一个规范,它定义了接口和API,使得应用程序可以控制跨越多个数据存储(如数据库、...

    03_传智播客JPA详解_搭建JPA开发环境和全局事务介绍

    3. **JTA事务协调**:在分布式环境中,JTA允许应用程序在不同的数据源之间协调事务,例如使用UserTransaction接口来启动和结束事务,配合XAResource实现跨数据库的事务一致性。 了解以上基础后,你可以观看"03_传智...

    tomcat 配置JTA事务

    在tomcat 中配置JTA 事务,方便管理web项目

    JTA事务源码示例

    Spring+iBatis+JOTM实现JTA事务: 如何处理跨库事物:spring + jtom 的jta事务是个很好的选择. 这个源码示例非常不错,包括所有的源码和jar包,下载后eclipse 或 myeclipse 导入就能用。 里面有详细的说明和注释,...

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

    Atomikos不仅仅是一个简单的JTA实现,它还包含了一些高级特性,如事务超时、事务恢复、事务日志、以及基于JMX的监控工具,这使得开发者可以更方便地处理复杂的分布式事务场景。 使用JTA和Atomikos进行多数据源事务...

    分布式事务操作之Spring+JTA+mybatis源码

    6. **配置Spring JTA事务**:在Spring的配置文件中,你需要配置 `UserTransaction` 和 `TransactionManager`,并启用事务管理。同时,你需要在MyBatis的相关配置中,指定使用JTA数据源。 7. **源码分析**:在...

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

    XA协议是数据库层面的一套分布式事务管理的规范,JTA是XA协议在Java中的实现,多个数据库或是消息厂商实现JTA接口,开发人员只需要调用SpringJTA接口即可实现JTA事务管理功能。 JTA事务比JDBC事务更强大。一个JTA事务...

    第二部分spring+hibernate+jta 分布式事务Demo

    我们可以使用`org.springframework.transaction.jta.JtaTransactionManager`来配置JTA事务管理器。通过Spring的`@Transactional`注解,可以在方法级别声明事务边界,使得事务管理更加简洁。 2. **Hibernate与JTA的...

    jta.jar包;jta.jar包

    6. **JTA与JDBC/Java Persistence API (JPA)**: 在JDBC连接上启用JTA事务,需要使用`javax.sql.DataSource.getConnection(UserTransaction, ConnectionProperties)`方法,或者在JPA中通过`@Transactional`注解声明...

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

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

    spring+jotm+ibatis+mysql实现JTA分布式事务

    在JTA分布式事务的场景下,iBATIS作为数据访问层,参与到事务处理中,其执行的SQL操作会受到JTA的控制,确保在事务中的所有数据库操作要么全部成功,要么全部回滚。 MySQL是广泛使用的开源关系型数据库管理系统,它...

    在Spring中使用JTA事务管理

    本文将详细介绍如何在Spring中使用JTA事务管理,包括通过集成JOTM(Java Open Transaction Manager)以及引用Tomcat的JTA事务。 ### 1. 通过集成JOTM,直接在Spring中使用JTA事务 #### 1.1. 添加JOTM类库到类路径...

Global site tag (gtag.js) - Google Analytics