com.ibm.wsspi.batch.parallel.status
Class SubJobAnalyzer

java.lang.Object
  extended by com.ibm.websphere.grid.spi.SPI
      extended by com.ibm.wsspi.batch.parallel.status.SubJobAnalyzer
All Implemented Interfaces:
java.lang.Comparable

public abstract class SubJobAnalyzer
extends com.ibm.websphere.grid.spi.SPI

SubJobAnalyzer is the abstract base class for the ParallelJobManager SubJobAnalyzer System Programming Interface (SPI). Use the SubJobAnalyzer to receive and process information about subjobs. The SubJobAnalyzer receives the following subjob information:

  1. Subjob return code for completed subjobs.
  2. Data collected during subjob execution for SubJobCollector SPI

The SubJobAnalyzer SPI can additionally set the final return code for a parallel job.

Implement the SubJobAnalyzer SPI, by extending this class and implementing the analyze methods.

Configure this SPI with the following declaration in the xd.spi.properties file:

 spi.parallel.status.SubJobAnalyzer=<fully-qualified implementation class name>
 

Notes:

  1. The xd.spi.properties file is located in:
  2.  <WAS install root>/properties.  E.g.
     
           /WebSphere/AppServer/properties
     
  3. The jar file containing the implementation of this SPI should be stored in:
  4.  <WAS install root>/lib/classes.  E.g.
     
           /WebSphere/AppServer/lib/classes
     

    You are responsible for creating the classes directory if it does not already exist.


    Constructor Summary
    SubJobAnalyzer()
               
     
    Method Summary
    abstract  void analyze(java.lang.String logicalJobName, java.lang.String logicalTXID, java.lang.String subJobID, java.io.Externalizable subJobData)
              Analyzes data collected from a running subjob.
    abstract  void analyze(java.lang.String logicalJobName, java.lang.String logicalTXID, java.lang.String subJobID, int subJobReturnCode)
              Analyzes subjob return code.
     java.lang.String getName()
               
    abstract  int getReturnCode(java.lang.String logicalJobName, java.lang.String logicalTXID)
              Returns the final return code for the specified parallel job.
     
    Methods inherited from class com.ibm.websphere.grid.spi.SPI
    compareTo, getInvocationOrder, setInvocationOrder, toString
     
    Methods inherited from class java.lang.Object
    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
     

    Constructor Detail

    SubJobAnalyzer

    public SubJobAnalyzer()
    Method Detail

    analyze

    public abstract void analyze(java.lang.String logicalJobName,
                                 java.lang.String logicalTXID,
                                 java.lang.String subJobID,
                                 java.io.Externalizable subJobData)
                          throws RollbackLogicalTXException
    Analyzes data collected from a running subjob. This method is called by the ParallelJobManager asynchronously as the SubJobCollector SPI collects subjob data. Order of this method getting invoked in relationship to order in which data is collected from subjobs is not guaranteed. This method may force logical transaction to rollback by throwing RollBackLogicalTXException.

    Parameters:
    logicalJobName - specifies name of the current parallel job. This name is the same each time you submit the same parallel job.
    logicalTXID - specifies a unique identifier for the current parallel job instance. This identifier defines a logical unit of work in which all subjobs for the current parallel job execute.
    subJobID - specifies the unique identifier of a subjob belonging to the current parallel job.
    subJobData - specifies the subjob data collected for the specified subjob.
    Throws:
    RollbackLogicalTXException

    analyze

    public abstract void analyze(java.lang.String logicalJobName,
                                 java.lang.String logicalTXID,
                                 java.lang.String subJobID,
                                 int subJobReturnCode)
                          throws RollbackLogicalTXException
    Analyzes subjob return code. This method is called by the ParallelJobManager asynchronously as subjobs complete. Order of this method getting invoked in relationship to order in which subjobs complete is not guaranteed. This method may force logical transaction to rollback by throwing RollBackLogicalTXException.

    Parameters:
    logicalJobName - specifies name of the current parallel job. This name is the same each time you submit the same parallel job.
    logicalTXID - specifies a unique identifier for the current parallel job instance. This identifier defines a logical unit of work in which all subjobs for the current parallel job execute.
    subJobID - specifies the unique identifier of a subjob belonging to the current parallel job.
    subJobReturnCode - specifies the return code from the specified subjob.
    Throws:
    RollbackLogicalTXException

    getReturnCode

    public abstract int getReturnCode(java.lang.String logicalJobName,
                                      java.lang.String logicalTXID)
                               throws RollbackLogicalTXException
    Returns the final return code for the specified parallel job. Called by the ParallelJobManager immediately before the parallel job ends. This method may force logical transaction to rollback by throwing RollBackLogicalTXException.

    Parameters:
    logicalJobName - specifies name of the current parallel job. This name is the same each time you submit the same parallel job.
    logicalTXID - specifies a unique identifier for the current parallel job instance. This identifier defines a logical unit of work in which all subjobs for the current parallel job execute.
    Returns:
    Return code for specified parallel job.
    Throws:
    RollbackLogicalTXException

    getName

    public java.lang.String getName()
    Specified by:
    getName in class com.ibm.websphere.grid.spi.SPI