Pergunta

Estou usando a primavera 3.0.3, mybatis 3.0.2 e mybatis-spring 1.0.0 no apache tomcat 6.0.29.

Eu usei transações declarativas de primavera para gerenciamento de transações. A questão é que as transações não estão funcionando para mim. A transação só funciona uma vez e depois de nada.

Eu tentei verificar todas as minhas configurações, mas nenhuma pista. Algum indicador?

Minhas configurações se parecem com isso -

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

Editar depois do comentário -------------

Eu inicio o servidor e executo alguma funcionalidade transacional e algumas vezes ele funciona e algumas vezes não. Às vezes, continua trabalhando por 5-6 vezes e, de repente, para.

TX Manager e 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>
Foi útil?

Solução

Você configurou seu DataSource na primavera ou no tomcat? (Tomcat tem uma configuração padrão estranha que o automobilismo comete após cada afirmação que eu acho que dificulta a execução de um DataSourCetransactionManager no topo)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top