A System Programming Interface (SPI) is a pluggable extension to the execution environment. Compute Grid SPIs are configured through a properties file that identifies the installed SPIs and their implementation class names.
Property file | Attribute |
---|---|
Name | xd.spi.properties |
Location | <WAS install directory>/properties |
Format | <SPI name>=<SPI implementation class> |
The purpose of the parameterizer SPI is to divide the top-level job into multiple sub-jobs. The parameterizer SPI determines the number of sub-jobs to create, and the input properties passed to each sub-job. Typically, the input properties contain information for which data chunks process a particular sub-job. Implementation of the parameterizer SPI is mandatory.
The synchronization SPI gives you control during the various life-cycle stages of the logical transaction. For example, the Begin, beforeCompletion, afterCompletion, and so on. You can use these control points to rollback the logical transaction if necessary.
The SubJobCollector SPI collects information related to a sub-job execution. In a typical implementation, progress information about a sub-job is stored as an externalizable object within the sub-job context. When the batch container invokes the collector SPI, the information previously stored within the sub-job context is returned.
The SubJobAnalyzer SPI is used to analyze information collected previously by using the SubJobCollector SPI. In a typical implementation, the SubJobAnalyzer SPI is used to aggregate information obtained from all sub-jobs to determine the consolidated return code for the top-level job. The SubJobAnalyzer SPI is called during checkpoint processing and on job completion.