WebSphere Extended Deployment, Version 6.0.x     Systèmes d'exploitation : AIX, HP-UX, Linux, Solaris, Windows, z/OS

Eléments xJCL

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 :

Table 1. Eléments xJCL
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.

Schéma XML pour xJCL

<?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>

 

Exemple de fichier xJCL pour un travail par lots

<?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>

Exemple de fichier xJCL pour un travail à traitement lourd

Actuellement, seuls les travaux à traitement lourd comportant une seule étape sont pris en charge.
<?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

Rubrique Concept    

Conditions d'utilisation | Commentaires Dernière mise à jour le : Mar 16, 2006 9:58:13 AM EST
http://publib.boulder.ibm.com/infocenter/wxdinfo/v6r0/index.jsp?topic=?topic=/com.ibm.websphere.xd.doc/info/scheduler/cxdbatchjcl.html

© Copyright IBM 2005, 2006. All Rights Reserved.
Ce centre de documentation s'appuie sur la technologie Eclipse. (http://www.eclipse.org)