Atomikos交易管理弹簧启动/弹簧堵塞

时间:2016-06-12 06:31:21

标签: spring spring-boot mybatis spring-jms atomikos

我有一个使用DefaultMessageListener容器的spring JMS的spring启动应用程序。我正在使用Atomikos进行交易管理。 异常时,消息队列回滚工作正常,消息确实移动到退出队列,但数据库更新不回滚。我在DefaultMessageContainerBean上设置了自动配置的JtaTransactionManager。是否需要任何其他配置才能获得真正的全局事务管理。我正在使用My Batis作为数据库。

public class CusListener implements MessageListener{
public void onMessage(Message message) {

    //Database call

    catch (Exception ex) {

                throw (new RuntimeException());
                }

}
}



@Configuration
public class ListenerContainer{

    @Bean
    public  DefaultMessageListenerContainer  defaultMessageListenerContainer(ConnectionFactory queueConnectionFactory,MQQueue queue, MessageListener listener,
            JtaTransactionManager jtaTransactionManager) {


        DefaultMessageListenerContainer defaultMessageListenerContainer =
                new DefaultMessageListenerContainer();
        defaultMessageListenerContainer.setConnectionFactory(queueConnectionFactory);               
        defaultMessageListenerContainer.setDestination(queue);
        defaultMessageListenerContainer.setMessageListener(listerner);
        defaultMessageListenerContainer.setTransactionManager(jtaTransactionManager);
        defaultMessageListenerContainer.setSessionTransacted(true);
        defaultMessageListenerContainer.setConcurrency("3-10");


        return defaultMessageListenerContainer; 
}

    //other beans declaration passed in the method above
}



@Configuration
public class PlanListenerSqlSessFac {


    @Bean(name="sqlSessionFactory")
    public SqlSessionFactory sqlSessionFactory(@Qualifier("dataSource") NMCryptoDataSourceWrapper dataSource) throws Exception {

    }



    @Bean(name="driverManagerDataSource")
    public DriverManagerDataSource driverManagerDataSource() {
        DriverManagerDataSource driverManagerDataSource = new DriverManagerDataSource();

        return driverManagerDataSource;
       }

}

1 个答案:

答案 0 :(得分:0)

您应该使用AtomikosDataSourceBean作为dataDource。

请参阅文档:https://www.atomikos.com/bin/view/Documentation/ConfiguringJdbc