`

spring3.1+hibernate3.6.9+atomikos3.7.0配置JTA事务

 
阅读更多

其他依赖:略

添加依赖

<dependency>
		<groupId>com.atomikos</groupId>
		<artifactId>transactions-jdbc</artifactId>
                <version>3.7.0</version>
</dependency>
<dependency>
		<groupId>javax.transaction</groupId>
		<artifactId>jta</artifactId>
               <version>1.1</version>
</dependency>

jta属性文件配置:

com.atomikos.icatch.service = com.atomikos.icatch.standalone.UserTransactionServiceFactory
com.atomikos.icatch.console_file_name = tm.out
com.atomikos.icatch.log_base_name = tmlog 
com.atomikos.icatch.tm_unique_name = com.atomikos.spring.jdbc.tm 
com.atomikos.icatch.console_log_level = INFO
com.atomikos.icatch.max_timeout = 300000

 数据源配置:

 

<!-- 数据源配置,druid数据库连接池 -->
	<bean id="dataSourceYuanshiKu" class="com.atomikos.jdbc.AtomikosDataSourceBean"
		init-method="init" destroy-method="close">
		 <property name="uniqueResourceName">      
            <value>jdbc/dataSourceYuanshiKu</value>      
        </property>      
        <property name="xaDataSourceClassName">      
            <value>${jdbc.oracle.xaDataSourceClassName}</value>      
        </property>      
        <property name="xaProperties">      
           <props>    
                   <prop key="URL">${jdbc.yuanshiku.url}</prop>    
	               <prop key="user">${jdbc.yuanshiku.userName}</prop>    
	               <prop key="password">${jdbc.yuanshiku.userPsw}</prop>    
           </props>      
        </property>          
        <property name="poolSize">      
            <value>3</value>      
        </property> 
        <property name="maxPoolSize"><value>30</value></property>    
	</bean>
	
	<!-- sessionFactory设置 -->
	<bean id="sessionFactoryYuanshiKu"
		class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
		<property name="dataSource">
			<ref bean="dataSourceYuanshiKu" />
		</property>
		<property name="hibernateProperties">
			<props>
				<prop key="hibernate.dialect">${hibernate.oracle.dialect}</prop>
				<prop key="hibernate.hbm2ddl.auto">${hibernate.yuanshiku.hbm2ddl.auto}</prop>
				<prop key="hibernate.show_sql">${hibernate.yuanshiku.show_sql}</prop>
				<prop key="hibernate.format_sql">${hibernate.yuanshiku.format_sql}</prop>
			</props>
		</property>
		<property name="packagesToScan">
			<value>com.szwx.credit.yuanshiku.model</value>
		</property>
	</bean>

 事务配置:

 

 

<!-- JTA事务BEGIN -->
	<bean id="atomikosTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager"
		init-method="init" destroy-method="close">
		<property name="forceShutdown">
			<value>true</value>
		</property>
	</bean>
	<bean id="atomikosUserTransaction" class="com.atomikos.icatch.jta.UserTransactionImp">
		<property name="transactionTimeout" value="300" />
	</bean>
	<bean id="transactionManager"
		class="org.springframework.transaction.jta.JtaTransactionManager">
		<property name="transactionManager" ref="atomikosTransactionManager" />
		<property name="userTransaction" ref="atomikosUserTransaction" />
		<property name="allowCustomIsolationLevels" value="true" />
	</bean>
	<!-- JTA事务END -->

	<tx:advice id="txAdviceSystem" transaction-manager="transactionManager">
		<tx:attributes>
			<tx:method name="save*" propagation="REQUIRED" />
			<tx:method name="add*" propagation="REQUIRED" />
			<tx:method name="create*" propagation="REQUIRED" />
			<tx:method name="insert*" propagation="REQUIRED" />
			<tx:method name="update*" propagation="REQUIRED" />
			<tx:method name="merge*" propagation="REQUIRED" />
			<tx:method name="del*" propagation="REQUIRED" />
			<tx:method name="remove*" propagation="REQUIRED" />
			<tx:method name="put*" propagation="REQUIRED" />
			<tx:method name="use*" propagation="REQUIRED" /><!--hibernate4必须配置为开启事务否则 
				getCurrentSession()获取不到 -->
			<tx:method name="get*" propagation="REQUIRED" read-only="true" />
			<tx:method name="count*" propagation="REQUIRED" read-only="true" />
			<tx:method name="find*" propagation="REQUIRED" read-only="true" />
			<tx:method name="list*" propagation="REQUIRED" read-only="true" />
			<tx:method name="*" read-only="true" />
		</tx:attributes>
	</tx:advice>
	<!-- 只对业务逻辑层实施事务 -->
	<aop:config expose-proxy="true">
		<aop:pointcut id="txPointcutSystem"
			expression="execution(* com.szwx.credit.*.service.impl.*Service.*(..))" />
		<aop:advisor advice-ref="txAdviceSystem" pointcut-ref="txPointcutSystem" />
	</aop:config>

oracle数据库需添加授权

grant select on sys.dba_pending_transactions to testdatabase;
grant select on sys.pending_trans$ to testdatabase;
grant select on sys.dba_2pc_pending to testdatabase;
grant execute on sys.dbms_system to testdatabase; 

 

 

分享到:
评论

相关推荐

    struts-2.3.1+spring3.1.1+hibernate3.6.9整合&配置文件

    这个压缩包文件"struts-2.3.1+spring3.1.1+hibernate3.6.9整合&配置文件"提供了将这三个框架整合使用的配置和依赖。下面我们将详细讨论这三个框架以及它们的整合过程。 **Struts 2** 是一个基于MVC设计模式的Java ...

    Hibernate 3.6.9 官方汉化版教程

    SSH(Struts、Spring、Hibernate)是经典的Java企业级开发框架组合,其中Hibernate作为数据层解决方案,Spring提供依赖注入和事务管理,Struts则处理视图和控制器。了解Hibernate是掌握SSH架构的关键步骤。 本教程...

    S2SH_DEMO(struts2.3/hibernate3.6/spring3.2.9)

    自己整合了一个可以运行的完整的S2SH框架(struts-2.3.16.1/hibernate-3.6.10/spring-framework-3.2.9),包含了所有的配置文件和所有必需的jar包。以后备用。。。

    hibernate3.6.9

    hibernate3.6.9

    Ubuntu 18.04.1+Mysql 5.7.29+Python 3.6.9部署django项目

    服务器环境:Ubuntu 18.04.1+Mysql 5.7.29+Python 3.6.9 ** 步骤一:布置环境 mysql安装(sudo apt-get update): 1.1命令安装 (1)sudo apt-get install mysql-server (2)sudo apt-get install mysql-client (3)...

    Springboot+vue前后端分离物联网智慧消防云平台源码带开发文档

    智慧消防云平台融合了无线烟感监测、...springboot2 + mysql 5.7 + redis 5.0.0 + elasticsearch 6.5.4 + rabbitmq 3.6.9 + vue3 使用根目录下maven 配置文件 mysql数据库资源创建好后,执行sql文件创建初始化数据库

    hibernate-core-3.6.9.Final.jar

    hibernate-core-3.6.9.Final

    Python3.6中文文档版HTML版(python-3.6.9-docs-html.zip)

    Python3.6是Python编程语言的一个重要版本,它在2017年发布,并在后续的几年里成为了许多开发者和企业的首选。... Python3.6引入了许多新特性和改进,其中包括: 1. **变量赋值语法增强**:引入了`:=`( walrus ...

    Hibernate3.6.10所需jar包

    在实际项目中,还需要配置相应的XML配置文件(如hibernate.cfg.xml、struts.xml、spring.xml等),以定义实体类、数据库连接、Action映射以及服务bean等。同时,确保正确设置类路径,使得所有依赖项都能被正确加载,...

    hibernate-testing-3.6.9.jar

    hibernate-testing-3.6.9

    hibernate 源码直接导入Eclipse

    - Transaction:事务处理是数据库操作的基础,Hibernate 提供了对JTA(Java Transaction API)和JTASupport接口的支持,用于管理事务。 - Criteria API 和 HQL:Hibernate 提供了两种查询语言,Criteria API 用于...

    最新版hibernate.jar包

    6. **事务管理**:Hibernate可以通过编程式或声明式的方式来处理事务,与JTA或JDBC事务API集成。 7. **性能优化**:包括批处理、懒加载、缓存策略调整等,都是提升Hibernate性能的关键。 总之,最新版的Hibernate....

    Python-3.6.9 tar+tar.xz.rar

    - 进入解压后的目录,运行`./configure`配置编译环境。 - 执行`make`进行编译。 - 最后,使用`sudo make altinstall`(或`sudo make install`,但可能覆盖已有的Python版本)安装Python。 5. **编译选项**:在...

    firefox 3.6.9.rar

    【Firefox 3.6.9】是Mozilla Firefox浏览器的一个历史版本,专为Windows操作系统设计。这个版本在2010年发布,包含了当时的最新安全更新和技术改进,旨在提供更稳定、安全的网络浏览体验。Firefox是一款开源的网页...

    samba-3.6.9

    标题中的"samba-3.6.9"指的是Samba软件的一个特定版本,即3.6.9版。这个版本的源代码被存放在一个名为"samba-3.6.9.tar.gz"的压缩文件中,通常在Linux环境中使用tar命令解压,再通过编译安装。 首先,我们需要了解...

    QloudServer最新版3.6.9 win

    首先,QloudServer 3.6.9的安装文件名为“Qloud Server Setup.exe”,表明这是一款针对Windows系统的安装程序,用户只需按照向导式步骤即可完成软件的安装,无需复杂的配置过程,对新手友好。 在功能特性上,...

    hibernate-c3p0 jar包下载

    hibernate4版本的c3p0jar包

    hibernate-core-3.6.9.Final.jar.zip

    java jar包,亲测试可用 安全,可以对其进行数字签名,只让能够识别数字签名的用户使用里面的东西。 加快下载速度; 压缩,使文件变小,与ZIP压缩机制完全相同。 ...能够让JAR包里面的文件依赖于统一版本的类文件。...

    Python库 | pycaching-3.6.9-py3.6.egg

    资源分类:Python库 所属语言:Python 资源全名:pycaching-3.6.9-py3.6.egg 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

Global site tag (gtag.js) - Google Analytics