我已经通过此链接 spring integration jdbc adapter for multiple nodes。这很有帮助。我对以下几点表示怀疑。
我有一个多线程环境(Multiple Nodes),其中有一个符合n行条件的选择查询,但是我配置了max-rows-per-poll = 5,随后是这5条记录的更新。 轮询器已配置事务。
当这5条记录由一个节点中的一个线程处理时,所有其他线程将等待,或者它们将从n-5条记录中分别选择5条记录并进行处理?
我正在使用int-jdbc:inbound-channel-adapter和Oracle数据库。
答案 0 :(得分:2)
您需要阅读max-messages-per-poll
和max-rows
:https://docs.spring.io/spring-integration/docs/5.0.7.RELEASE/reference/html/jdbc.html#jdbc-max-rows-per-poll-versus-max-messages-per-poll之间的区别。
对于Oracle,我也建议使用FOR UPDATE SKIP LOCKED
,如果您确实想获取新记录并且不等待已被锁定。