org.omg.CosTransactions
Class SubtransactionAwareResourcePOA

java.lang.Object
  extended byorg.omg.PortableServer.Servant
      extended byorg.omg.CosTransactions.SubtransactionAwareResourcePOA
All Implemented Interfaces:
org.omg.CORBA.portable.InvokeHandler, ResourceOperations, SubtransactionAwareResourceOperations
Direct Known Subclasses:
SubtransactionAwareResourcePOATie, SubTransListener

public abstract class SubtransactionAwareResourcePOA
extends org.omg.PortableServer.Servant
implements SubtransactionAwareResourceOperations, org.omg.CORBA.portable.InvokeHandler

Recoverable objects that implement nested transaction behavior may support a specialization of the Resource interface called the SubtransactionAwareResource interface. A recoverable object can be notified of the completion of a subtransaction by registering a specialized resource object that offers the SubtransactionAwareResource interface with the Transaction Service. This registration is done by using the register_resource or the register_subtran_aware operation of the current Coordinator object. A recoverable object generally uses the register_resource operation to register a resource that will participate in the completion of the top-level transaction and the register_subtran_aware operation to be notified of the completion of a subtransaction. Certain recoverable objects may want a finer control over the registration in the completion of a subtransaction. These recoverable objects will use the register_resource operation to ensure participation in the completion of the top-level transaction and they will use the register_subtran_aware operation to be notified of the completion of a particular subtransaction. For example, a recoverable object can use the register_subtran_aware operation to establish a "committed with respect to" relationship between transactions; that is, the recoverable object wants to be informed when a particular subtransaction is committed and then perform certain operations on the transactions that depend on that transaction?s completion. This technique could be used to implement lock inheritance, for example. The Transaction Service uses the SubtransactionAwareResource interface on each Resource object registered with a subtransaction. Each object supporting this interface is implicitly associated with a single subtransaction.


Constructor Summary
SubtransactionAwareResourcePOA()
           
 
Method Summary
 java.lang.String[] _all_interfaces(org.omg.PortableServer.POA poa, byte[] objectId)
           
 org.omg.CORBA.portable.OutputStream _invoke(java.lang.String opName, org.omg.CORBA.portable.InputStream _is, org.omg.CORBA.portable.ResponseHandler handler)
           
 SubtransactionAwareResource _this()
           
 SubtransactionAwareResource _this(org.omg.CORBA.ORB orb)
           
 
Methods inherited from class org.omg.PortableServer.Servant
_default_POA, _get_delegate, _get_interface_def, _is_a, _non_existent, _object_id, _orb, _poa, _set_delegate, _this_object, _this_object
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.omg.CosTransactions.SubtransactionAwareResourceOperations
commit_subtransaction, rollback_subtransaction
 
Methods inherited from interface org.omg.CosTransactions.ResourceOperations
commit_one_phase, commit, forget, prepare, rollback
 

Constructor Detail

SubtransactionAwareResourcePOA

public SubtransactionAwareResourcePOA()
Method Detail

_this

public SubtransactionAwareResource _this()

_this

public SubtransactionAwareResource _this(org.omg.CORBA.ORB orb)

_all_interfaces

public java.lang.String[] _all_interfaces(org.omg.PortableServer.POA poa,
                                          byte[] objectId)

_invoke

public final org.omg.CORBA.portable.OutputStream _invoke(java.lang.String opName,
                                                         org.omg.CORBA.portable.InputStream _is,
                                                         org.omg.CORBA.portable.ResponseHandler handler)
Specified by:
_invoke in interface org.omg.CORBA.portable.InvokeHandler