com.groiss.wf.batch
Interface BatchAdapter

All Known Subinterfaces:
ExceptionBatchAdapter
All Known Implementing Classes:
NullAdapter

public interface BatchAdapter

Interface BatchAdapter allows an instance to be notified by the BatchManager of execution events of a BatchJob.


Method Summary
 void afterCompletion(BatchJob job, boolean commit)
          The afterCompletion method notifies a BatchAdapter that a batchjob has completed.
 void afterCreation(BatchJob job)
          The afterCreation method notifies a batch adapter that a batchjob has been created.
 void beforeCompletion(BatchJob job)
          The beforeCompletion method notifies a BatchAdapter that a BatchJob is about to complete.
 void doCompensate(BatchJob job)
           
 void doStart(BatchJob job)
          The doStart Method is reponsible for starting the batch job.
 void startup()
          Startup is called when the adapter is instanciated by the BatchManager.
 

Method Detail

startup

void startup()
             throws java.lang.Exception
Startup is called when the adapter is instanciated by the BatchManager. It can be used to setup the execution context for the BatchJobs.

Throws:
java.lang.Exception

afterCreation

void afterCreation(BatchJob job)
                   throws java.lang.Exception
The afterCreation method notifies a batch adapter that a batchjob has been created.

This usually happens via a Batchmanager.submitJob() call. It can be used to collect parameters from the process context. If it makes any changes to the job, job.update() must be called.

It is typically executed from a preprocessing method of a Task and is expected to complete quickly.

If an Exception is thrown by afterCreation, this exception is not catched and will manifest in the context of the caller (usually a preprocessing method).

Parameters:
job - a BatchJob
Throws:
java.lang.Exception

doStart

void doStart(BatchJob job)
             throws java.lang.Exception
The doStart Method is reponsible for starting the batch job.

It has to start the batch job in some external execution context. If it runs in the JVM itself, it is expected to complete quickly. The method is executed via the Batch Timer for each BatchJob, which is in state BatchJob.CREATED and whose starttime is either null or not in the future.

If an exception is thrown by doStart, the BatchManager places the job in state BatchJob.STARTERROR. No furter action is carried out by the system with this BatchJob. So either doStart itself has to take appropriate actions, or an adminstratotor must check for jobs in this state manually.

Parameters:
job - a BatchJob
Throws:
java.lang.Exception

beforeCompletion

void beforeCompletion(BatchJob job)
                      throws java.lang.Exception
The beforeCompletion method notifies a BatchAdapter that a BatchJob is about to complete. The BatchManager calls this method for each BatchJob with jobstate = BatchJob.FINISHED, before the Task in which the BatchJob originated is finished.

The method can be used to transfer results from the execution context of the finished jobs to the process context.

If an exception is thrown by beforeCompletion, the BatchManager places the job in state BatchJob.FINISHERROR. No furter action is carried out by the system with this BatchJob. So either beforeCompletion itself takes appropriate actions, or handling is done in afterCompletion, or an adminstrator must check for jobs in this state manually.

Parameters:
job - a BatchJob
Throws:
java.lang.Exception

afterCompletion

void afterCompletion(BatchJob job,
                     boolean commit)
                     throws java.lang.Exception
The afterCompletion method notifies a BatchAdapter that a batchjob has completed. It also tells the adapter whether the completion was successfull or not.

Parameters:
job - a BatchJob
commit - True if the job has been completed, false if there were errors.
Throws:
java.lang.Exception

doCompensate

void doCompensate(BatchJob job)
                  throws java.lang.Exception
Throws:
java.lang.Exception


@enterprise 8.0.22989 Copyright © 2001-2017 Groiss Informatics GmbH. All Rights Reserved.