ジョブは xJCL (XML ジョブ制御言語) と呼ばれる Extensible Markup Language (XML) の方言を使用して表現されます。xJCL のエレメントのなかには、数値計算ジョブまたはバッチ・ジョブのいずれかにしか適用できないものも一部ありますが、xJCL には、数値計算ジョブおよびバッチ・ジョブの両方に必要なすべての情報を表現するための構文があります。 xJCL についての詳細は、サンプル・アプリケーションに提供されている xJCL、 xJCL テーブルおよび xJCL XSD スキーマ文書を参照してください。 ジョブの xJCL 定義は、長時間実行アプリケーションの一部ではないことに注意してください。 これは別個に構成され、実行のために長時間実行スケジューラーに実行依頼されます。 長時間実行スケジューラーは xJCL 内の情報を使用して、 ジョブを実行する場所と時間を決定します。
以下のテーブルに、xJCL エレメントを要約します。
エレメント | 数値計算 | バッチ | サブエレメント | 属性 | 説明 |
---|---|---|---|---|---|
job | Y | Y | 有効範囲はバッチ・ジョブの記述です。 | ||
Y | Y | name | ジョブの名前。この名前は長時間実行アプリケーションの名前と一致しなければなりません。 | ||
Y | Y | jndi-name | 長時間実行アプリケーションが WebSphere Application Server にデプロイされる際に、 ジョブ・コントローラー・ステートレス・セッション Bean に指定される JNDI 名。 | ||
Y | Y | step-scheduling-criteria | step-scheduling-criteria エレメントを参照してください | ||
N | Y | checkpoint-algorithm | checkpoint-algorithm エレメントを参照してください | ||
Y | Y | job-step | job-step エレメントを参照してください | ||
job-step | |||||
Y* | Y | name | ステップの名前。この情報は、作動可能なコマンドで戻されます。 | ||
N | Y | step-scheduling | step-scheduling エレメントを参照してください | バッチ・ステップを起動する必要があるかどうかを決定するステップの戻りコードに 基づく、条件付きロジックを許可します。 | |
N | Y | checkpoint-algorithm-ref | checkpoint-algorithm-ref エレメントを参照してください | バッチ・ジョブ・ステップに対して使用するチェックポイント・アルゴリズムを指定します。 | |
Y | N | classname | 数値計算ジョブをインプリメントするクラスの完全修飾名。 | ||
N | Y | JNDI-name | バッチ・ジョブ・ステップをロードするためにバッチ実行環境が使用するエンティティー Bean (バッチ・ステップ Bean) のホームの論理 JNDI 名です。 | ||
props | props エレメントを参照してください | ステップに渡す名前値プロパティー | |||
N | Y | batch-data-streams | batch-data-streams エレメントを参照してください | 一連の bds エレメントです。各 bds は、バッチ・データ・ストリームを作成するために必要な構成情報です。 | |
prop | Y | Y | プロパティーとして機能する、名前値ペアの単一インスタンス。 | ||
name | プロパティーの名前。 | ||||
value | プロパティーの値。 | ||||
props | Y | Y | 名前値ペアのプロパティーをステップ、 bds、チェックポイント・アルゴリズム、および結果アルゴリズムに渡すために使用する一連の prop エレメント。 | ||
prop | prop エレメントを参照してください。 | ||||
bds | N | Y | 使用するバッチ・ジョブで使用可能にされるバッチ・データ・ストリーム・インプリメンテーションの単一インスタンス。 | ||
logical-name | logical-name は、バッチ・ステップがバッチ実行環境に対して特定のバッチ・データ・ストリーム・インスタンスを要求する際に使用する、バッチ・ステップに組み込まれたストリングです。 | ||||
impl-class | バッチ・データ・ストリーム・インプリメンテーション・クラスの完全修飾クラス名。 | ||||
props | props エレメントを参照してください | バッチ・データ・ストリーム・インプリメンテーション・クラスに渡されるプロパティーのリスト。 | |||
batch-data-streams | N | Y | 一連の bds エレメント | ||
bds | bds エレメントを参照してください | ||||
step-scheduling | N | Y | バッチ・ジョブに対して戻りコード・ベースの条件フローを作成するため、job-step に適用できます。 このバッチ・ジョブ用に定義された戻りコードの値を比較して、バッチ・ジョブの処理中にステップを起動する必要があるかどうかを 決定することができます。戻りコードの値は、returncode-expression エレメントを使用して比較されます。 | ||
returncode- expression | returncode-expression を参照してください | 評価対象の returncode-expression。 | |||
condition | 複数の returncode-expression エレメントが step-scheduling エレメントにある場合、条件演算子をそれらに適用することができます。 サポートされる条件演算子は、AND、OR です。 | ||||
returncode-expression | N | Y | バッチ・ジョブ・ステップを他のジョブ・ステップの戻りコードに基づいて実行すべきかどうかを判断する step-scheduling タグの下で使用されます。 | ||
step | この式で戻りコードが比較されるステップの名前です。 | ||||
operator | 戻りコードの式に使用する演算子です。 サポートされる演算子は、eq (等しい)、lt (より小)、gt (より大)、 le (より小か等しい)、ge (より大か等しい) です。 | ||||
value | 戻りコードを比較するための値。 | ||||
step-scheduling-criteria | N | Y | ジョブ・ステップが処理される順序を記述します。 現在、順次スケジューリングがサポートされています。 つまり、ステップは xJCL で表示される順に起動されます。 | ||
scheduling-mode | ステップを起動する順序。 現在、可能な値は sequential のみです。 | ||||
checkpoint-algorithm | N | Y | バッチ・ジョブ・ステップに使用できるチェックポイント・アルゴリズムを宣言します。 | ||
name | アルゴリズムの名前。 | ||||
classname | このアルゴリズムをインプリメントするクラス。 | ||||
props | props エレメントを参照してください | チェックポイント・アルゴリズム用の一連の prop エレメント。 | |||
checkpoint-algorithm-ref | N | Y | チェックポイント・アルゴリズム・エレメントへの参照。 | ||
name | 参照されるチェックポイント・アルゴリズムの名前。 | ||||
props | props エレメントを参照してください | チェックポイント・アルゴリズム用の一連の prop エレメント。 |
* 単一ステップの数値計算ジョブのみがサポートされています。
<?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="classname" type="xsd:string" /> <xsd:element name="impl-class" type="xsd:string" /> <xsd:element name="jndi-name" type="xsd:string" /> <xsd:element name="logical-name" type="xsd:string" /> <xsd:element name="scheduling-mode" type="xsd:string" /> <xsd:element name="batch-data-streams"> <xsd:complexType> <xsd:sequence> <xsd:element maxOccurs="unbounded" minOccurs="1" ref="bds"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="bds"> <xsd:complexType> <xsd:sequence> <xsd:element ref="logical-name" minOccurs="1" maxOccurs="1"/ > <xsd:element ref="impl-class" minOccurs="1" maxOccurs="1"/ > <xsd:element ref="props" minOccurs="0" maxOccurs="1"/ > </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="checkpoint-algorithm"> <xsd:complexType> <xsd:sequence> <xsd:element ref="classname" minOccurs="1" maxOccurs="1"/> <xsd:element ref="props" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" use="required" /> </xsd:complexType> </xsd:element> <xsd:element name="checkpoint-algorithm-ref"> <xsd:complexType> <xsd:attribute name="name" type="xsd:string" use="required"/> </xsd:complexType> </xsd:element> <xsd:element name="results-algorithm"> <xsd:complexType> <xsd:sequence> <xsd:element ref="classname" minOccurs="1" maxOccurs="1"/> <xsd:element ref="props" minOccurs="0" maxOccurs="1"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="results-algorithms"> <xsd:complexType> <xsd:sequence> <xsd:element maxOccurs="unbounded" minOccurs="1" ref="results- algorithm" /> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="results-ref"> <xsd:complexType> <xsd:attribute name="name" type="xsd:string" use="required"/> </xsd:complexType> </xsd:element> <xsd:element name="job"> <xsd:complexType> <xsd:sequence> <xsd:element ref="jndi-name" minOccurs="1" maxOccurs="1"/> <xsd:element ref="step-scheduling-criteria" minOccurs="1" maxOccurs="1"/> <xsd:element ref="checkpoint-algorithm" maxOccurs="unbounded" <minOccurs="1"/> <xsd:element ref="results-algorithms" maxOccurs="1" minOccurs="0"/> <xsd:element ref="job-step" maxOccurs="unbounded" minOccurs="1" /> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" use="required" /> </xsd:complexType> </xsd:element> <xsd:element name="job-step"> <xsd:complexType> <xsd:sequence> <xsd:choice> <!-- jndi-name for batch jobs --> <xsd:element ref="jndi-name" minOccurs="1" maxOccurs="1"/> <!-- classname for compute intensive jobs --> <xsd:element ref="classname" minOccurs="1" maxOccurs="1"/> </xsd:choice> <xsd:element ref="step-scheduling" minOccurs="0" maxOccurs="1"/> <xsd:element ref="checkpoint-algorithm-ref" minOccurs="0" maxOccurs="1"/> <xsd:element ref="batch-data-streams" minOccurs="0" maxOccurs="1"/> <xsd:element ref="props" minOccurs="0" maxOccurs="1"/> <xsd:element ref="results-ref" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" use="optional" /> </xsd:complexType> </xsd:element> <xsd:element name="prop"> <xsd:complexType> <xsd:attribute name="name" type="xsd:string" use="required" /> <xsd:attribute name="value" type="xsd:string" use="required" /> </xsd:complexType> </xsd:element> <xsd:element name="props"> <xsd:complexType> <xsd:sequence> <xsd:element ref="prop" maxOccurs="unbounded" minOccurs="1"/> </xsd:sequence> </xsd:complexType> /xsd:element <xsd:element name="returncode-expression"> <xsd:complexType> <xsd:attribute name="step" type="xsd:string" use="required" /> <xsd:attribute name="operator" type="xsd:string" use="required" /> <xsd:attribute name="value" type="xsd:string" use="required" /> </xsd:complexType> </xsd:element> <xsd:element name="step-scheduling"> <xsd:complexType> <xsd:sequence> <xsd:element ref="returncode-expression" minOccurs="1" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="condition" type="xsd:string" use="required" /> </xsd:complexType> </xsd:element> <xsd:element name="step-scheduling-criteria"> <xsd:complexType> <xsd:sequence> <xsd:element ref="scheduling-mode" minOccurs="1" maxOccurs="1"/> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema>
<?xml version="1.0" encoding="UTF-8"?> <job name="SampleEar" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <jndi-name>ejb/com/ibm/websphere/samples/PostingsJob</jndi-name> <step-scheduling-criteria> <scheduling-mode>sequential</scheduling-mode> </step-scheduling-criteria> <checkpoint-algorithm name="timebased"> <classname>com.ibm.wsspi.batch.checkpointalgorithms.timebased</classname> <props> <prop name="interval" value="15" /> </props> </checkpoint-algorithm> <results-algorithms> <results-algorithm name="jobsum"> <classname>com.ibm.wsspi.batch.resultsalgorithms.jobsum</classname> </results-algorithm> </results-algorithms> <job-step name="Step1"> <jndi-name>ejb/DataCreationBean</jndi-name> <checkpoint-algorithm-ref name="timebased" /> <results-ref name="jobsum"/> <batch-data-streams> <bds> <logical-name>myoutput</logical-name> <impl-class>com.ibm.websphere.samples.PostingOutputStream</impl-class> <props> <prop name="FILENAME" value="somefile”/> </props> </bds> </batch-data-streams> <props> <prop name="wsbatch.count" value="5000" /> </props> </job-step> <job-step name="Step2"> <step-scheduling condition="OR"> <returncode-expression step="Step1" operator="eq" value="0" /> <returncode-expression step="Step1" operator="eq" value="1" /> </step-scheduling> <jndi-name>ejb/PostingAccountData</jndi-name> <checkpoint-algorithm-ref name="timebased" / > <results-ref name="jobsum"/> <batch-data-streams> <bds> <logical-name>myinput</logical-name> <impl-class>com.ibm.websphere.samples.PostingStream</impl-class> <props> <prop name="FILENAME" value="somefile" /> </props> </bds> </batch-data-streams> </job-step> </job>
<?xml version="1.0" encoding="UTF-8"?> <job name="SimpleCIEar" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <jndi-name>ejb/com/ibm/ws/ci/SimpleCIEJB</jndi-name> <job-step name="Step1"> <classname>com.ibm.websphere.ci.samples.SimpleCIWork</classname> <props> <prop name="calculationTimeInSecs" value="30" /> <prop name="outputFileName" value="SimpleCI_output_file" /> </props> </job-step> </job>
Related concepts
xJCL の XML スキーマ