At the moment domain management API exposes transactions and their participants from the object store. Thus it is possible to traverse down from a transaction to its participant records which is nice.
However in special cases it is possible to create "orphan" records in the object store, i.e. XAResourceRecord's which do not have any corresponding transaction record in the log (e.g. XA resource prepared but crashed before the TM recorded the fact) and thus are inaccessible for the domain management API, see . In case of JTA it is not very problem as JBossTS has orphan filters for JTA that can remove such orphans automatically. But in case of JTS this becomes to be a problem as JBossTS does not have any orphan filers for JTS and the orphan records stay in the object store. Because of this we would need a tool that can expose and remove such records at least for HornetQ based object store where it is not possible to remove them manually from the file system.
Another question is why JBossTS includes orphan filters only for JTA.
Please consider severity/priority of this issue and discuss the details.
Link: Added: This issue is related to JBQA-6260
The Object Store tooling creates MBeans for transaction records and then creates MBeans to represent their participants. Since an orphan doesn't have a corresponding transaction MBeans are not created for them.
So I would need to add code to JBossTS to expose orphans as MBeans and then update the AS management subsystem to add a new child resource for exposing them.
ie we need another release of JBossTS to get this fixed.
Labels: Added: eap6_need_triage
Labels: Removed: eap6_need_triage Added: eap601candidate
Link: Added: This issue is a dependency of JBTM-1148
Link: Added: This issue depends AS7-4331
Link: Added: This issue is a dependency of AS7-4331
Docs QE Status: Removed: NEW
Reassingning to Heiko because the only dependency left is assigned to him
To expose all the transaction logs we need an extra attribute on the transactions subsystem in the AS management model. The subsystem manages transaction logs via MBeans. So something like
String EXPOSEALLLOGS = "expose-all-logs";
ObjectName on = new ObjectName("jboss.jta:type=ObjectStore")
MBeanServer mbs = TransactionExtension.getMBeanServer(context)
and then use the mbean server to update the MBean atribute
mbs.setAttribute(on, new Attribute("ExposeAllRecordsAsMBean", Boolean.TRUE)
This operation will now expose all transaction logs.
I noticed your change has been merged to WF, do you intend to perform the backport for this too?
Thanks very much,
Yes, I am going to port this back.
Now setting "expose-all-logs" to true allows to show orphaned JTS logs.
Verified on jboss-eap-6.4.0.DR2