Arjuna abstract record to handle CORBA (SubtransactionAware)Resource interface. The OTS handling of Resources is bizarre (by Arjuna standards) and confusing Our current understanding is: Resources registered using 'register_resource' ONLY take part in top-level events SubtransactionAwareResources registered using 'register_subtran_aware' ONLY take part in commit/abort of the action in which they are registered - i.e. they DO NOT propagate automatically - the registering object must do the propagation itself using the parent arg in the 'commit_subtransaction' operation. If a SubtransactionAwareResource is registered with 'register_resource' then it will be propagated to the parent when the action commit. Otherwise it is only registered with the current transaction. Subtransactions do not have a 'prepare' phase which can thus lead to inconsistency. If they underwent the full 2-phase protocol (as they do in Arjuna), then all nested participants will have to repond successfully to prepare before they can be told to commit. The way the OTS mandates the protocol, we could tell some to commit before being told by another resource that it cannot commit! We then have to go through the resources and tell them to abort! May cause heuristic decisions! The only problem is if a resource which does not propagate causes a nested action to fail. SubtransactionAwareResources registered using 'register_resource' do appear to propagate. UGH! Braindead!
@author Mark Little (mark@arjuna.com)
@version $Id: ResourceRecord.java 2342 2006-03-30 13:06:17Z $
@since JTS 1.0.
@message com.arjuna.ats.internal.jts.resources.rrcaught {0} caught exception: {1}
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.