Class AbstractJavaActionActor

All Implemented Interfaces:
IActionActorSettingsReceiver<JavaActionActorBase.Settings>, IJavaActionActor, ITimeoutListener, ITXPNode
Direct Known Subclasses:
TestJavaActionActor

public abstract class AbstractJavaActionActor extends AbstractActionActorTXPNode<JavaActionActorBase.Settings> implements IJavaActionActor
This minimal class implements the Java Action Actor Interface Interface IJavaActionActor required to handle execution of a VirtualSpace action in conjunction with the TXP engine.
Author:
Christopher Mindus
  • Constructor Details

    • AbstractJavaActionActor

      protected AbstractJavaActionActor()
      Default constructor.
  • Method Details

    • begin

      public final ITXPNode.State begin(ITXProcess process, ITXPid pid)
      Notifies the node it got associated with a transactional process.
      Specified by:
      begin in interface ITXPNode
      Parameters:
      process - The process.
      pid - The pid for this node of the process.
      Returns:
      the state of the node, either WORKING for success, or FAILURE.
    • prepare

      protected final void prepare() throws Exception
      Action actor specific action needed for preparation. This method is called from the prepareAction.

      This method cannot be overridden. Override the method onPrepare() to perform custom processing.

      Overrides:
      prepare in class AbstractActionActorTXPNode<JavaActionActorBase.Settings>
      Throws:
      Exception - For any error in the prepare phase.
    • execute

      public void execute() throws Exception
      Method called to do the serialized work of the action actor. This method is called once all nodes are associated with the TXProcess and each node has processed "begin" successfully.

      By default, this method calls the onAction() method but can be overridden.

      Specified by:
      execute in class AbstractActionActorTXPNode<JavaActionActorBase.Settings>
      Throws:
      Exception - For any error in the execution phase.
    • forget

      public final void forget(ITXProcess process)
      Notifies the node it got disassociated from the process ie it can abort, rollback (if needed) and forget about the process.

      This method cannot be overridden. Override the method onForget() to perform custom processing.

      Specified by:
      forget in interface ITXPNode
      Overrides:
      forget in class AbstractActionActorTXPNode<JavaActionActorBase.Settings>
      Parameters:
      process - The process.
    • rollback

      public ITXPNode.State rollback(ITXProcess process)
      Instructs the node to roll back the work. The node should set and respond with either ITXPNode.State.COMPLETED or ITXPNode.State.FAILED depending on its state. NOTE if the node failed its work it is already rolled back and will return ITXPNode.State.COMPLETED but remain in state ITXPNode.State.FAILED.

      This method cannot be overridden. Override the method onRollback() to perform custom processing.

      Specified by:
      rollback in interface ITXPNode
      Parameters:
      process - The process.
      Returns:
      the state of the node.
    • commit

      public ITXPNode.State commit(ITXProcess process)
      Instructs the node to commit the work. The node should set and respond with either ITXPNode.State.COMPLETED or ITXPNode.State.FAILED depending on its state. If a commit failed the node is expected to have rolled back the work.
      Specified by:
      commit in interface ITXPNode
      Parameters:
      process - The process.
      Returns:
      the state of the node.
    • onBegin

      protected void onBegin() throws Exception
      Notifies the node it got associated with a transactional process. The node should set up its local transaction context as required.

      Override this method to perform specific processing.

      Throws:
      Exception - For any kind of error.
    • onPrepare

      protected void onPrepare() throws Exception
      Action actor specific action needed for preparation. Called after begin to prepare the operation.

      Override this method to perform specific processing.

      Throws:
      Exception - For any kind of error.
    • onCommit

      protected void onCommit() throws Exception
      Instructs the node to commit the work.

      This method can be overridden to process commit.

      Throws:
      Exception - For any kind of error.
    • onRollback

      protected void onRollback() throws Exception
      Instructs the node to roll back the work.

      This method can be overridden to process rollback.

      Throws:
      Exception - For any kind of error.
    • onForget

      protected void onForget() throws Exception
      Notifies the node it got disassociated from the process i.e. it can abort, rollback (if needed) and forget about the process.

      A node that handles commit and rollback should override this method and call rollback.

      The default is to make sure that onRollback() has been called, and if not it gets called.

      Throws:
      Exception - For any kind of error.
    • onAction

      public abstract void onAction()
      Performs the action as a part of a commit operation.
      Specified by:
      onAction in interface IJavaActionActor