繁体   English   中英

使用 Atomikos 进行 Spring 集成事务管理

[英]Spring Integration Transaction management using Atomikos

我正在考虑创建一个 Spring Integration Spring Boot 应用程序来

1-Poll messages from a DB 2-Do some processing on it 3-Publish messages to EMS Queue

使用 Atomikos 进行事务管理。 我的问题是:如果上述配置将在所有必需的 JTA 配置完成后进行事务处理? 另外我在某处读到过,如果在 Spring Integration 中创建了多个线程,例如,使用 Splitter,那么上下文就不会是事务性的。 如何克服这一点?

如果您将轮询器配置为事务性的,只要您不切换到另一个线程(例如,通过ExecutorChannelQueueChannel通道),流程就会在事务中运行。

添加拆分器不会打破事务边界,因为每个拆分都将在同一线程上处理。

Spring Integration 对事务有不同的要求,要做到这一点,你需要在轮询器元数据中传递一个事务管理器,例如:

@Bean
    public PollerMetadata pollerMetadata() throws  NamingException   {
        return Pollers.fixedDelay(Long.valueOf(env.getProperty("poller.interval")))
                .transactional(**transactionManager**).get();
    }

 @Autowired
     private PlatformTransactionManager **transactionManager**;

并把:

@InboundChannelAdapter(channel = "jpaInputChannel", poller = @Poller(value = "**pollerMetadata**"))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM