xJCL 元素
作业使用称为 xJCL(XML 作业控制语言)的可扩展标记语言 XML 方言进行表示。虽然 xJCL 的某些元素仅适用于计算密集型作业或批处理作业,但此方言具有用于表示计算密集型作业和批处理作业所需的所有信息的构造。有关 xJCL 的更多信息,请参阅随样本应用程序提供的 xJCL、xJCL 表 和 xJCL XSD 模式文档。作业的 xJCL 定义不是 批处理应用程序 的一部分,但却独立构建并提交至 作业调度程序 以运行。作业调度程序 使用 xJCL 中的信息来确定作业运行的位置和时间。
xJCL 元素
下表汇总了 xJCL 元素。
元素 | Java EE 计算密集型 | Java EE 批处理 | 子元素 | 属性 | 描述 |
---|---|---|---|---|---|
job | yes | yes | 划定批处理作业描述的范围。 | ||
job | yes | yes | name | 作业的名称。除非指定 default-application-name,否则此名称必须与批处理应用程序的名称匹配。 | |
job | yes | yes | accounting | 可选的记账信息属性。 | |
job | yes | yes | class | 可选作业类属性,用于识别在其下运行作业的作业类。 | |
job | yes | yes | default-application-name | 找不到作业步骤应用程序名称属性时将要使用的应用程序名称。 要使用的应用程序名称。对于 OSGi 批处理应用程序,请将该名称格式化为 osgi:<eba name>:<version>。 |
|
job | yes | yes | jndi-name | 将 批处理应用程序 部署到产品中时,向作业控制器无状态会话 Bean 提供的 JNDI 名称。 | |
job | yes | yes | job-scheduling criteria | 必需的功能 | 作业的必需功能,必须将其定义在作业的端点上才能分派给该端点。 |
job | yes | yes | step-scheduling criteria | 请参阅 step-scheduling-criteria 元素 | |
job | no | yes | checkpoint algorithm | 请参阅 checkpoint-algorithm 元素 | |
job | no | yes | results-algorithm | 请参阅 results-algorithms 元素 | |
job | yes | yes | substitution-props++ | 请参阅 prop 元素 | 作业的必需功能,必须将其定义在作业的端点上才能分派给该端点。 |
job-step | 是* | yes | name | 步骤的可选名称。此信息将在操作性命令中返回。 | |
job-step | 是* | yes | application-name | 步骤所运行的应用程序的可选名称。如果省略 application-name 并省略级别属性 default-application-name,那么将使用此属性名称。 | |
job-step | no | yes | step-scheduling | 请参阅 step-scheduling 元素 | 允许基于步骤返回码的条件性逻辑,该逻辑用于确定是否调用批处理步骤。 |
job-step | yes | yes | classname | 用于实现计算密集型作业的类的标准名称。 | |
job-step | yes | no | checkpoint-algorithm-ref | 指定用于批处理作业步骤的检查点算法。 | |
job-step | no | yes | results-ref | 请参阅 results-ref 元素 | 指定用于条件性批处理作业步骤执行的结果算法。 |
job-step | no | yes | batch-data-streams | 请参阅 batch-data-streams 元素 | bds 元素序列。每一个 bds 都是创建批处理数据流必需的配置信息。 |
job-step | yes | yes | props | 请参阅 props 元素 | 要传递给步骤的名称/值属性。 |
job-step | no | no | exec | 请参阅 exec 元素 | 识别与作业步骤相关联的可执行文件。 |
job-step | no | no | env-entries | 请参阅 env-entries 元素 | 识别与作业步骤相关联的环境属性。 |
prop | yes | yes | 名称/值对的单个实例,用来充当一个属性。 | ||
prop | yes | yes | name | 属性的名称。 | |
prop | yes | yes | 值 | 属性的值。 | |
props | yes | yes | prop | 请参阅 prop 元素 | |
env-entries | no | no | 用于向步骤、bds、检查点算法和结果算法传递“名称/值”对属性的 prop 元素序列。 | ||
env-entries | no | no | env-var | 请参阅 env-var 元素 | |
exec | no | no | 用于向步骤、bds、检查点算法和结果算法传递“名称/值”对属性的 prop 元素序列。 | ||
exec | no | no | executable | 与作业步骤相关联的可执行文件的名称。 | |
exec | no | no | arg | 请参阅 line 元素 | |
line | no | no | 传递给作业步骤可执行文件的命令行参数。 | ||
bds | no | yes | 可供批处理作业使用的批处理数据流实现的单个实例。 | ||
bds | no | yes | logical-name | 嵌入在批处理步骤中的字符串,批处理步骤将使用该字符串来查询特定批处理数据流实例的批处理运行时环境。 | |
bds | no | yes | impl-class | 批处理数据流实现类的标准类名。 | |
bds | no | yes | props | 请参阅 props 元素 | 列示传递给批处理数据流实现类的属性。 |
batch-data-streams | no | yes | bds 元素的序列 | ||
batch-data-streams | no | yes | bds | 请参阅 bds 元素 | |
step-scheduling | no | yes | 应用于 job-steps 以为批处理作业创建基于返回码的条件性流。比较为此批处理作业定义的返回码值,以确定在处理批处理作业时是否调用某个步骤。使用 returncode-expression 元素来比较返回码的值。 | ||
step-scheduling | no | yes | returncode- expression | 请参阅 returncode-expression | 要评估的 returncode- expression。 |
step-scheduling | no | yes | 条件 | 如果 step-scheduling 元素中有多个 returncode-expression 元素,那么会向这些元素应用条件性运算符。受支持的条件性运算符为:AND 和 OR。 | |
returncode-expression | no | yes | 用在 step-scheduling 标签下面以确定批处理作业步骤是否根据其他作业步骤的返回码来运行。 | ||
returncode-expression | no | yes | step | 要在此表达式中比较其返回码的步骤的名称。 | |
returncode-expression | no | yes | 操作员 | 用于返回码表达式的运算符。 受支持的运算符为 eq(等于)、lt(小于)、gt(大于)、le(小于或等于)和 ge(大于或等于)。 | |
returncode-expression | no | yes | 值 | 要将其与返回码进行比较的值。 | |
step-scheduling-criteria | no | yes | 描述处理作业步骤时所使用的顺序。目前的顺序调度受支持;例如,按步骤在 xJCL 中的顺序进行调用。 | ||
step-scheduling-criteria | no | yes | scheduling-mode | 调用步骤时所使用的顺序,现在只有一个可能的值 sequential。 | |
checkpoint-algorithm | no | yes | 声明可用于批处理作业步骤的检查点算法。 | ||
checkpoint-algorithm | no | yes | name | 算法的名称。 | |
checkpoint-algorithm | no | yes | classname | 用于实现此算法的类。 | |
checkpoint-algorithm | no | yes | props | 请参阅 props 元素 | 检查点算法的 prop 元素序列。 |
checkpoint-algorithm-ref | no | yes | 对检查点算法元素的引用。 | ||
checkpoint-algorithm-ref | no | yes | name | 您要引用的检查点算法的名称。 | |
checkpoint-algorithm-ref | no | yes | props | 请参阅 props 元素。 | 检查点算法的 prop 元素序列。 |
++ xJCL 元素 substitution-props 在以下部分中进行讨论。
xJCL substitution-props
<checkpoint-algorithm-ref name="${checkpoint}" />
<substitution-props>
<prop name="wsbatch.count" value="5" />
<prop name="checkpoint" value="timebased" />
<prop name="checkpointInterval" value="15" />
<prop name="postingsDataStream" value="${was.install.root}${file.separator}temp${file.separator}postings" />
</substitution-props>
符号变量的替代发生在运行时。运行时,会将字符串 ${variable-name} 替换为提交 xJCL 执行时的属性值。通过在上述示例中使用这些属性,在提交作业之前,将字符串 ${checkpoint} 替换为字符串 time-based。
符号变量可以是间接形式。例如:与名称/值对 filename=postingsDataStream 配合使用的 name=FILENAME value=${${filename}} 所生成的结果与指定 name=FILENAME value=${postingsDataStream} 所生成的结果相同。
符号变量也可以是复合形式。例如,name=postingsDataStream value=${was.install.root}${file.separator}temp${file.separator}postings。
不必在作业文档 substitution-props 元素中定义名称/值对。定义在 substitution-props 元素中的 props 名称/值对是给定变量的缺省值。如果未定义在 substitution-props 元素中,那么必须在提交作业时通过作业调度程序 API 传递名称/值对或者在 JVM 的系统属性中定义名称/值对。必须解析定义在作业文档主体中的每一个符号变量,才能将 xJCL 视为有效。定义在作业文档中的每一个名称/值对必须解析为在 xJCL 主体中找到的符号变量,才能将 xJCL 视为有效。
如果既在 xJCL 文档中定义了名称/值对又在作业提交时将名称/值对传递给作业调度程序 API,那么通过作业调度程序 API 传递的名称/值对将覆盖定义在 xJCL 文档中的缺省值。如果未通过作业调度程序 API 传递名称/值对也未在 xJCL 文档中将其定义为缺省值,那么必须在系统 JVM 属性中定义符号变量的名称/值对,才能将 xJCL 视为有效。
- ${was.install.root}
- ${user.install.root}
- ${agent.home}