Description
I have a KahaDB that's performing a recovery on each startup.
Digging deeper into it I've found that the issue is that the db.log contains prepared transactions.
The MessageDatabase will discard those entries in memory, however it does not remove transaction info from those messages (I believe that's by design). So on each restart, the broker will find those entries and again discard them in memory.
If I access the broker via JMX, I can go to the prepared XAs and execute a clear on them one by one.
When i restart my broker, i don't have a recovery attempted again.
Performing a remove operation for each message can be very time consuming, so i'd like to introduce an optional parameter to allow all prepared XAs to be removed on recovery.
Please see my forth coming patch with unit test.
Attachments
Issue Links
- breaks
-
AMQ-7052 Fix tests related to purgeRecoveredXATransactions property on the KahaDB
- Resolved
- links to