17.2. Job Specification Language (JSL) 継承
JBoss EAP batch-jberet
サブシステムの機能を使用すると、Job Specification Language (JSL) 継承を使用してジョブ定義の共通の部分を抽象化できます。JSL 継承は JSR-352 1.0 仕様に含まれていないため、JBoss EAP batch-jberet
サブシステムは JSL Inheritance v1 のドラフト版に基づいて JSL 継承を実装します。
同じジョブ XML ファイル内の step および flow の継承
step や flow などの親要素は、直接的な実行から除外するために属性 abstract="true"
でマークされます。子要素には、親要素を参照する parent
属性が含まれます。
<job id="inheritance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0"> <!-- abstract step and flow --> <step id="step0" abstract="true"> <batchlet ref="batchlet0"/> </step> <flow id="flow0" abstract="true"> <step id="flow0.step1" parent="step0"/> </flow> <!-- concrete step and flow --> <step id="step1" parent="step0" next="flow1"/> <flow id="flow1" parent="flow0"/> </job>
異なるジョブ XML ファイルからのステップの継承
step や job などの子要素には以下が含まれます。
-
jsl-name
属性。親要素を含むジョブ XML ファイルの名前 (.xml
拡張子なし) を指定します。 -
parent
属性。jsl-name
で指定されたジョブ XML ファイルの親要素を参照します。
親要素は、直接的な実行から除外するために属性 abstract="true"
でマークされます。
例: chunk-child.xml
<job id="chunk-child" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0"> <step id="chunk-child-step" parent="chunk-parent-step" jsl-name="chunk-parent"> </step> </job>
例: chunk-parent.xml
<job id="chunk-parent" > <step id="chunk-parent-step" abstract="true"> <chunk checkpoint-policy="item" skip-limit="5" retry-limit="5"> <reader ref="R1"></reader> <processor ref="P1"></processor> <writer ref="W1"></writer> <checkpoint-algorithm ref="parent"> <properties> <property name="parent" value="parent"></property> </properties> </checkpoint-algorithm> <skippable-exception-classes> <include class="java.lang.Exception"></include> <exclude class="java.io.IOException"></exclude> </skippable-exception-classes> <retryable-exception-classes> <include class="java.lang.Exception"></include> <exclude class="java.io.IOException"></exclude> </retryable-exception-classes> <no-rollback-exception-classes> <include class="java.lang.Exception"></include> <exclude class="java.io.IOException"></exclude> </no-rollback-exception-classes> </chunk> </step> </job>