Currently there is no good means to debug problematic transactions without parsing cryptic logs on whole grid.
I suggest adding several improvents to mitigate the issue:
1. Add chaining method Transaction.withLabel(String) to attach transaction descrtiption.
2. Add method localActiveTransaction to IgniteTransactions interface, which will return all active near transactions for local node.
3. Extend control.sh to support retrieving active transactions information from grid nodes.
By default it shows N (specified by user) transactions ordered by longest duration.
For each transaction is shown:
Near node id(IP, hostname) / xid / state / duration / dht topology / meta from 1 if presents
It should support filtering by near node / state / duration and printing info for single tx if single xid is specified as argument.
In addition to that each transaction from the list may be forcibly rolled back by xid.
4. Add mbean with same functionality as in 3.