Travaux exprimés à l'aide d'un dialecte XML (Extensible Markup Language) appelé xJCL (XML Job Control Language). xJCL dispose de blocs de construction pour définir toutes les informations nécessaires aux travaux à traitement lourd ou par lots, bien que certains éléments de xJCL soient applicables uniquement à l'une de ces procédures. Pour plus d'informations sur xJCL, reportez-vous aux données xJCL fournies avec les exemples d'applications et le document de schéma XSD xJCL. Notez que la définition xJCL d'un travail ne fait pas partie de l'application à exécution longue. Elle est élaborée séparément et soumise au planificateur à exécution longue pour traitement. Le planificateur de traitement à exécution longue utilise les informations de la définition xJCL pour déterminer l'emplacement et la date d'exécution du travail.
Le tableau suivant récapitule les éléments xJCL suivants :
Elément | Traitement lourd | Traitement par lots | Sous-élément | Attributs | Description |
---|---|---|---|---|---|
Travail | O | O | S'applique à la description d'un travail par lots | ||
O | O | name | Nom du travail. Ce nom doit correspondre à celui de l'application à exécution longue. | ||
O | O | jndi-name | Nom JNDI attribué au bean session sans état chargé de contrôler le travail lorsque l'application à exécution longue est déployée sur le système WebSphere Application Server. | ||
O | O | step-scheduling-criteria | Voir l'élément step-scheduling-criteria | ||
N | O | checkpoint-algorithm | Voir l'élément checkpoint-algorithm | ||
O | O | job-step | Voir l'élément job-step | ||
job-step | |||||
O* | O | name | Nom de l'étape. Cette information est renvoyée dans les commandes d'exécution. | ||
N | O | step-scheduling | Voir l'élément step-scheduling | Permet une logique conditionnelle basée sur les codes retour des étapes pour déterminer si l'étape de la procédure par lots doit être appelée. | |
N | O | checkpoint-algorithm-ref | Voir l'élément checkpoint-algorithm-ref | Spécifie l'algorithme de point de contrôle à utiliser pour l'étape du travail par lots. | |
O | N | classname | Nom complet de la classe qui implémente le travail à traitement lourd. | ||
N | O | JNDI-name | Nom JNDI logique de l'interface home du bean entity (bean de l'étape par lots) que l'environnement d'exécution par lots doit utiliser pour charger l'étape du travail par lots. | ||
props | Voir l'élément props | Propriétés name-value à transmettre à l'étape. | |||
N | O | batch-data-streams | Voir l'élément batch-data-streams | Séquence d'éléments bds. Chaque élément bds correspond aux informations de configuration nécessaires pour créer un flux de travaux par lots (BDS). | |
prop | O | O | Instance unique d'une paire nom-valeur utilisée comme propriété. | ||
name | Nom de la propriété. | ||||
value | Valeur de la propriété. | ||||
props | O | O | Série d'éléments de propriété utilisés pour transmettre les propriétés de la paire name-value aux étapes, aux flux de données par lot et aux algorithmes de point de contrôle et de résultats. | ||
prop | Voir l'élément prop. | ||||
bds | N | O | Instance unique d'une implémentation de flux de données par lots qu'un travail par lots peut utiliser. | ||
logical-name | Logical-name est une chaîne imbriquée dans l'étape du travail par lots et utilisée pour demander à l'environnement d'exécution une instance de flux de données par lots spécifique. | ||||
impl-class | Nom complet de la classe d'implémentation du flux de données par lots. | ||||
props | Voir l'élément Props | Liste des propriétés transmises à la classe d'implémentation du flux de données par lots. | |||
batch-data-streams | N | O | Séries d'éléments bds | ||
bds | Voir l'élément bds | ||||
step-scheduling | N | O | S'applique à job-steps pour créer un code retour reposant sur des flux conditionnels d'un travail par lots. L'élément step-scheduling peut comparer les valeurs des codes retour définies pour ce travail par lots pour déterminer si une étape doit être appelée lors du traitement d'un travail par lots. Les valeurs des codes retour sont comparées à l'aide de l'élément returncode-expression. | ||
returncode- expression | Voir returncode-expression | returncode-expression à évaluer. | |||
condition | S'il existe plusieurs éléments returncode-expression dans l'élément step-scheduling, des opérateurs conditionnels peuvent être appliqués à ces éléments. Les opérateurs conditionnels pris en charge sont AND et OR. | ||||
returncode-expression | N | O | Utilisé sous les balises step-scheduling pour déterminer si une étape d'un travail par lots doit être exécutée en fonction des codes retour d'autres étapes du travail. | ||
step | Nom de l'étape dont le code retour doit être comparé dans cette expression. | ||||
operator | Opérateur à utiliser pour l'expression du code retour. Les opérateurs pris en charge sont eq (égal à), lt (inférieur à), gt (supérieur à), le (inférieur ou égal à), ge (supérieur ou égal à). | ||||
value | Valeur utilisée pour comparer le code retour. | ||||
step-scheduling-criteria | N | O | Décrit la séquence de traitement des étapes du travail. La planification séquentielle est actuellement prise en charge, c'est-à-dire que les étapes sont appelées dans l'ordre de leur apparition dans le document xJCL. | ||
scheduling-mode | Ordre dans lequel les étapes sont appelées. La seule valeur autorisée actuellement est sequential. | ||||
checkpoint-algorithm | N | O | Déclare un algorithme de point de contrôle qui peut être utilisé pour l'étape d'un travail par lots. | ||
name | Nom de l'algorithme. | ||||
classname | Classe qui implémente cet algorithme. | ||||
props | Voir l'élément props | Série d'éléments prop pour l'algorithme de point de contrôle. | |||
checkpoint-algorithm-ref | N | O | Référence à un élément de l'algorithme de point de contrôle. | ||
name | Nom de l'algorithme de point de contrôle auquel il est fait référence. | ||||
props | Voir l'élément props | Série d'éléments prop pour l'algorithme de point de contrôle. |
* Seuls les travaux à traitement lourd comportant une seule étape sont pris en charge.
<?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
Schéma XML pour xJCL