Spring aop事务不提交事务

时间:2010-10-26 04:14:24

标签: java spring tomcat spring-aop spring-transactions

我在Apache Tomcat 6.0.29上使用Spring 3.0.3,MyBatis 3.0.2和mybatis-spring 1.0.0。

我使用spring的声明式事务进行事务管理。问题是这些交易对我不起作用。该交易仅适用一次,之后无效。

我试过检查我的所有配置,但没有任何线索。有什么指针吗?

我的配置如下所示 -

    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="*" propagation="REQUIRED" />
        </tx:attributes>
    </tx:advice>

    <aop:config>
        <aop:pointcut id="dtxops"
            expression="execution(* com.service.*.*(..))" />
        <aop:advisor advice-ref="txAdvice" pointcut-ref="dtxops" />
    </aop:config>

评论后编辑-------------

我启动服务器并执行一些事务功能,有时它可以工作,有时却没有。有时它会继续工作5-6次然后突然停止。

TX Manager和DS配置 -

<bean id="transactionManager"
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource">
            <ref bean="dataSource" />
        </property>
    </bean>

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

1 个答案:

答案 0 :(得分:0)

您是否在Spring或Tomcat中配置了数据源? (Tomcat有一些奇怪的默认设置,在每个语句之后自动提交,我想这很难在顶部运行DataSourceTransactionManager)