If you enable recovery on the aggregator eip when using a persistent repository such as the jdbc, then you may have a race condition when having multiple camel apps running in a cluster. As the aggregate recover task is running on each Camel app (node) in the cluster. So they may potentially all pickup recovery tasks, and execute those, which may cause duplicate messages being recovered.
What is needed is a lock table or some other way to ensure only one recover tasks "wins" and executes.
We may want to enhance the API in camel to facilitate this kind of locking. As with hawtdb you may have a shared file on the SAN and thus have the same racing issue.