我在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>
答案 0 :(得分:0)
您是否在Spring或Tomcat中配置了数据源? (Tomcat有一些奇怪的默认设置,在每个语句之后自动提交,我想这很难在顶部运行DataSourceTransactionManager)