Вопрос

Я использую весна 3.0.3, MyBatis 3.0.2 и MyBatis-Spring 1.0.0 на Apache Tomcat 6.0.29.

Я использовал декларативные операции весной для управления транзакциями. Вопрос в том, что транзакции не работают для меня. Транзакция работает только один раз и после этого ничего.

Я попытался проверить все мои конфиги, но нет подсказки. Любые указатели?

Мои конфигурации выглядят так -

    <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 Config -

<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>
Это было полезно?

Решение

Вы настроили Вас DataSource весной или Tomcat? (Tomcat имеет некоторые странные настройки по умолчанию, которые автоматически передают после каждого утверждения, которое, наглядят, ему трудно запустить DataSourcetransactionManager сверху)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top