[英]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,那么上下文就不会是事务性的。 如何克服这一点?
如果您将轮询器配置为事务性的,只要您不切换到另一个线程(例如,通过ExecutorChannel
或QueueChannel
通道),流程就会在事务中运行。
添加拆分器不会打破事务边界,因为每个拆分都将在同一线程上处理。
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.