Class ServerControl
java.lang.Object
org.omg.PortableServer.Servant
com.arjuna.ArjunaOTS.ActionControlPOA
com.arjuna.ats.internal.jts.orbspecific.ControlImple
com.arjuna.ats.internal.jts.orbspecific.interposition.ServerControl
- All Implemented Interfaces:
ActionControlOperations
,org.omg.CORBA.portable.InvokeHandler
,ControlOperations
As with ControlImple, the transaction is maintained until the control object
is deleted.
This class maintains a handle on the current server-side transaction, and
also references to the original transaction it is "mirroring". This allows us
to have a single place to hold both sets of information which is accessible
to interposed resources, synchronizations, and transactions.
- Since:
- JTS 1.0.
- Version:
- $Id: ServerControl.java 2342 2006-03-30 13:06:17Z $
- Author:
- Mark Little (mark@arjuna.com)
-
Field Summary
Fields inherited from class com.arjuna.ats.internal.jts.orbspecific.ControlImple
_destroyed, _myControl, _parentControl, _theCoordinator, _theTerminator, _theUid, _transactionHandle, _transactionImpl, allControls
-
Constructor Summary
ConstructorDescriptionServerControl
(Uid actUid, Control parentCon, ArjunaTransactionImple parentTran, Coordinator realCoord, Terminator realTerm) -
Method Summary
Methods inherited from class com.arjuna.ats.internal.jts.orbspecific.ControlImple
canDestroy, canDestroy, createTransactionHandle, duplicateTransactionHandle, equals, finalize, get_coordinator, get_terminator, get_uid, getControl, getFinalStatus, getImplHandle, getParentControl, set_coordinator, set_terminator, tidyup
Methods inherited from class com.arjuna.ArjunaOTS.ActionControlPOA
_all_interfaces, _invoke, _this, _this
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
-
Field Details
-
allServerControls
-
-
Constructor Details
-
ServerControl
public ServerControl(Uid actUid, Control parentCon, ArjunaTransactionImple parentTran, Coordinator realCoord, Terminator realTerm) -
ServerControl
-
-
Method Details
-
isWrapper
public final boolean isWrapper() -
originalCoordinator
-
originalTerminator
-
destroy
public void destroy() throws ActiveTransaction, ActiveThreads, BadControl, Destroyed, org.omg.CORBA.SystemExceptionDescription copied from class:ControlImple
destroy should only be called for remote Control objects. Destroy them locally by calling DESTROY_IMPL. Since we assume that a factory will either be remote or local, we can destroy this object and rely upon the ORB to return an exception to subsequent clients which indicates they no longer have a valid reference.- Specified by:
destroy
in interfaceActionControlOperations
- Overrides:
destroy
in classControlImple
- Throws:
ActiveTransaction
ActiveThreads
BadControl
Destroyed
org.omg.CORBA.SystemException
-
getParentImple
- Overrides:
getParentImple
in classControlImple
-
toString
- Overrides:
toString
in classControlImple
-
forgetHeuristics
public final boolean forgetHeuristics() -
addControl
protected boolean addControl()Description copied from class:ControlImple
Transaction needs to call these methods to enable garbage collection to occur. Note, we assume that one ContorlImple per transaction is maintained per address space, so that overwriting a previously added ControlImple for the same tx is not possible.- Overrides:
addControl
in classControlImple
-
removeControl
protected boolean removeControl()- Overrides:
removeControl
in classControlImple
-