首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Atomikos事务管理spring boot/spring jams

Atomikos事务管理spring boot/spring jams
EN

Stack Overflow用户
提问于 2016-06-12 14:31:21
回答 1查看 458关注 0票数 0

我有一个使用DefaultMessageListener容器的spring JMS spring boot应用程序。我正在使用Atomikos进行事务管理。在异常情况下,消息队列回滚工作正常,消息确实会移动到回退队列,但数据库更新不会回滚。我已经在DefaultMessageContainerBean上设置了自动配置的JtaTransactionManager。要获得真正的全局事务管理,这里还需要其他配置吗?我正在使用我的Batis作为数据库。

代码语言:javascript
运行
复制
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;
       }

}

EN

回答 1

Stack Overflow用户

发布于 2016-06-13 21:01:49

您应该使用AtomikosDataSourceBean作为dataDource。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37771382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档