Jobs are expressed using an Extensible Markup Language XML dialect called XML xJCL Job Control Language. This dialect has constructs for expressing all of the information needed for both compute-intensive and batch jobs, although some elements of xJCL are only applicable to compute-intensive or batch jobs. See the xJCL provided with the Sample applications, the xJCL table and xJCL XSD schema document for more information about xJCL. The xJCL definition of a job is not part of the long-running application, but is constructed separately and submitted to the long-running scheduler for to run. The long-running scheduler uses information in the xJCL to determine where and when the job should be run.
The following table summarizes the xJCL elements:
Element | Compute- intensive | Batch | Sub-element | Attributes | Description |
---|---|---|---|---|---|
job | Y | Y | not-applicable | not-applicable | Scopes the description of a batch job. |
not-applicable | Y | Y | not-applicable | name | Name of the job. This name must match the name of the long-running application. |
not-applicable | Y | Y | jndi-name | not-applicable | JNDI name that is given to the job controller stateless session bean when the long-running application is deployed on WebSphere Application Server. |
not-applicable | Y | Y | step-scheduling-criteria | See step-scheduling-criteria element | not-applicable |
not-applicable | N | Y | checkpoint-algorithm | See checkpoint-algorithm element | not-applicable |
not-applicable | Y | Y | job-step | See job-step element | not-applicable |
job-step | not-applicable | not-applicable | not-applicable | not-applicable | not-applicable |
not-applicable | Y++ | Y | not-applicable | name | Name of the step. This information is returned on operational commands. |
not-applicable | N | Y | step-scheduling | See step-scheduling element | Allows for conditional logic based on return codes of steps that determine if the batch step should be invoked or not |
not-applicable | N | Y | checkpoint-algorithm-ref | See checkpoint-algorithm-ref element | Specifies the checkpoint algorithm to use for the batch job step. |
not-applicable | Y | N | classname | not-applicable | Fully-qualified name of class that implements the compute intensive job. |
not-applicable | N | Y | JNDI-name | not-applicable | Logical JNDI name of the home for the entity bean batch step bean that the batch runtime environment uses to load the batch job step with. |
not-applicable | not-applicable | not-applicable | props | See props element | Name-value properties to pass to the step |
not-applicable | N | Y | batch-data-streams | See batch-data-streams element | A sequence of bds elements. Each bds is the configuration information necessary to create a batch data stream. |
prop | Y | Y | not-applicable | not-applicable | Single instance of a name value pair, that serves as a property. |
not-applicable | not-applicable | not-applicable | not-applicable | name | Name of the property. |
not-applicable | not-applicable | not-applicable | not-applicable | value | Value of the property. |
props | Y | Y | not-applicable | not-applicable | Series of prop elements that are used to pass name value pair properties to steps, bds, checkpoint algorithms and results algorithms. |
not-applicable | not-applicable | not-applicable | prop | See prop element | not-applicable |
bds | N | Y | not-applicable | not-applicable | Single instance of a batch data stream implementation that is made available to the batch job to use. |
not-applicable | not-applicable | not-applicable | logical-name | not-applicable | A string that is embedded in batch step that the batch step uses to ask the batch runtime environment for a specific batch data stream instance. |
not-applicable | not-applicable | not-applicable | impl-class | not-applicable | Fully qualified class name of the batch data stream implementation class. |
not-applicable | not-applicable | not-applicable | props | See Props elements | List of properties that are passed to the batch data stream implementation class. |
batch-data-streams | N | Y | not-applicable | not-applicable | Series of bds elements |
not-applicable | not-applicable | not-applicable | bds | see bds element | not-applicable |
step-scheduling | N | Y | not-applicable | not-applicable | Can be applied to job steps to create return code-based conditional flows for a batch job. Can compare values of return codes defined for this batch job to decide whether a step is invoked or not while processing a batch job. The values of return codes are compared using the return code-expression element. |
not-applicable | not-applicable | not-applicable | returncode- expression | see returncode-expression | Returncode- expression for evaluation. |
not-applicable | not-applicable | not-applicable | not-applicable | condition | If there is more than one returncode-expression element in the step-scheduling element, then conditional operators can be applied to them. Conditional operators supported are: AND, OR. |
returncode-expression | N | Y | not-applicable | not-applicable | Used for step scheduling tags to decide if a batch job step is run based on return codes of other job steps. |
not-applicable | not-applicable | not-applicable | not-applicable | step | Name of step whose return code is to be compared in this expression. |
not-applicable | not-applicable | not-applicable | not-applicable | operator | Operator to use for the return code expression; the supported operators are: eq equals, lt less than, gt greater than, le less than or equal to, ge greater than or equal to. |
not-applicable | not-applicable | not-applicable | not-applicable | value | The value with which to compare the return code. |
step-scheduling-criteria | N | Y | not-applicable | not-applicable | Describes the sequence in which the job steps are processed. Currently sequential scheduling is supported, and steps get invoked in the order in which they are displayed in xJCL. |
not-applicable | not-applicable | not-applicable | scheduling-mode | not-applicable | Sequence in which to invoke steps: only possible value is sequential |
checkpoint-algorithm | N | Y | not-applicable | not-applicable | Declares a checkpoint algorithm that can be used for a batch job step. |
not-applicable | not-applicable | not-applicable | not-applicable | name | Name of algorithm. |
not-applicable | not-applicable | not-applicable | classname | not-applicable | Class that implements this algorithm. |
not-applicable | not-applicable | not-applicable | props | see props element | Sequence of props elements for the checkpoint algorithm. |
checkpoint-algorithm-ref | N | Y | not-applicable | not-applicable | Reference to a checkpoint algorithm element. |
not-applicable | not-applicable | not-applicable | not-applicable | name | Name of checkpoint algorithm to which you are referring. |
not-applicable | not-applicable | not-applicable | props | see props element | Sequence of prop elements for the checkpoint algorithm. |
+ Only single-step compute intensive jobs are supported.