Ideas for MMC
In the last few weeks, Bartek and I went through a good amount of pain chasing after bugs related to edge cases involving competing threads, transactions and distributed cache access. We've made a lot of progress and we learned a few lessons.
Several tools proved valuable to track the issues:
1 - ability to dump the stack trace of all threads which are involved in transactions. There is a method that does that: TransactionManagerImpl.displayOngoingSleeTransactions()
When a locking exception occurs, the information it provides along with the tx thread dump allows us to see which code sequences run into competition and eventually deadlock.
2 - ability to dump the pending events in the Event Router queue. This is useful in cases where the queue gets filled up with redundant events due to application error or some other reason.
1 and 2 would be useful features to have in the MMC.