2010-10-26 149 views
0

我在Apache Tomcat 6.0.29上使用Spring 3.0.3,MyBatis 3.0.2和mybatis-spring 1.0.0。Spring aop事务未提交事务

我已经使用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经理和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> 
+0

“transactionManager”的配置是什么? – 2010-10-26 09:29:14

+0

我将txManager配置添加到问题 – 2010-10-26 10:47:36

+0

我建议您调试应用程序 - 然后您将能够看到是否添加了事务内容,另一个好主意是在春天启用事务日志记录。 – 2010-12-15 21:21:06

回答

0

你有没有在春季或Tomcat配置数据源你? (Tomcat有一些奇怪的默认设置,在每个语句之后自动提交,我猜使它很难在最上面运行DataSourceTransactionManager)

+0

是使用Tomcat 6,那么有没有解决方案? – 2011-10-02 10:26:09

+0

如果您在Tomcat中配置了数据源,请确保defaultAutoCommit设置为false – Konstantin 2011-10-13 07:49:41