Hey, We have a situation where we have KahaDB performing recovery, digging deeper into it one 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.
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. That’s pretty tedious, especially if you say have 300k transactions (Don’t ask why :)) When i restart my broker, those I manually cleared of course are gone. In the Jira is a different approach, basically add a parameter that allows us to just discard during recovery - This helps resolve this as we have 300k XA Transactions that we already know are "broken", recovering the "Correct" way, we spend hours, being able to not rebuild (Which we know is bad), we are talking minutes. This methodology technically break the XA contract because the content is more important than the actual transaction, we are intending to drain and replay them in new sessions. - Just to throw some background to the slip and see what others have to say.
