artembilan/spring-integration — comment on commit d5af04c225bf33c782e90ae2570c5fcab9aa7b78
File: spring-integration-jdbc/src/main/java/org/springframework/integration/jdbc/JdbcMessageStore.java line 482
By artembilan:

1. On embedded Derby Competing Consumers can read the same message in separate transactions at the same time. That's why I concluded Derby doesn't support lock on FOR UPDATE. However as you see I've added additional check on null-return for **removeMessageFromGroup()**, so it was enough for Competing Consumers on Derby MessageStore.
2. I've tested it on Oracle. It support locks on FOR UPDATE. So, one of Competing Consumers doesn't get the same message at this point at the same time that one other.