2010-10-26 146 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