WebSphere Extended Deployment, Version 6.0.x     Sistemas operativos: AIX, HP-UX, Linux, Solaris, Windows, z/OS

Elementos xJCL

Los trabajos se expresan con un dialecto de XML (Extensible Markup Language) denominado xJCL (Lenguaje de control de trabajos XML). xJCL tiene construcciones para expresar toda la información necesaria para los trabajos por lotes o los trabajos con una actividad de proceso intensiva. Consulte el xJCL que se proporciona con las aplicaciones de ejemplo, el documento de esquema XSD de xJCL y la tabla xJCL para obtener más información sobre xJCL. Tenga en cuenta que la definición xJCL de un trabajo no forma parte de la aplicación de larga ejecución. Se construye separadamente y se somete al Scheduler de larga ejecución para su ejecución. El Scheduler de larga ejecución utiliza la información de xJCL para determinar dónde y cuándo se debe ejecutar el trabajo.

La siguiente tabla resume los elementos xJCL:

Table 1. Elementos xJCL
Elemento Cálculo intensivo Por lotes Subelemento Atributos Descripción
job S S     Ámbito de la descripción de un trabajo por lotes.
  S S   name Nombre del trabajo. Tiene que coincidir con el nombre de la aplicación de larga ejecución
  S S jndi-name   Nombre JNDI que se asigna al bean de sesión sin estado del controlador de trabajos cuando la aplicación de larga ejecución se despliega en WebSphere Application Server.
  S S step-scheduling-criteria Consulte el elemento step-scheduling-criteria  
  N S checkpoint-algorithm Consulte el elemento checkpoint-algorithm  
  S S job-step Consulte el elemento job-step  
job-step          
  S* S   name Nombre del paso. Esta información se devuelve en los mandatos operativos.
  N S step-scheduling Consulte el elemento step-scheduling Permite la lógica condicional basada en los códigos de retorno de los pasos, la cual determina si los pasos por lotes deben invocarse o no
  N S checkpoint-algorithm-ref Consulte el elemento checkpoint-algorithm-ref Especifica el algoritmo de punto de control que se va a utilizar para el paso de trabajo por lotes.
  S N classname   Nombre plenamente cualificado de la clase que implementa el trabajo con una actividad de proceso intensiva.
  N S JNDI-name   Nombre JNDI lógico de la factoría del bean de entidad (bean de paso por lotes) con el que el entorno de ejecución por lotes cargará el paso de trabajo por lotes.
      props Consulte el elemento props Propiedades nombre-valor que se van a pasar al paso
  N S batch-data-streams Consulte el elemento batch-data-streams Secuencia de elementos bds. Cada bds contiene la información de configuración necesaria para crear una secuencia de datos por lotes.
prop S S     Instancia única de un par de nombre y valor que sirve de propiedad.
        name Nombre de la propiedad.
        value Valor de la propiedad.
props S S     Serie de elementos prop que se utilizan para pasar propiedades de pares de nombre y valor a los pasos, bds, algoritmos de punto de control y algoritmos de resultados.
      prop Consulte el elemento prop  
bds N S     Instancia única de implementación de una secuencia de datos por lotes a la que puede acceder el trabajo por lotes para utilizarla.
      logical-name   logical-name es una serie incorporada en el paso por lotes que éste utiliza para pedir al entorno de ejecución por lotes una instancia específica de secuencia de datos por lotes.
      impl-class   Nombre de clase plenamente cualificado de la clase de implementación de la secuencia de datos por lotes.
      props Consulte el elemento Props Lista de propiedades que se pasan a la clase de implementación de la secuencia de datos por lotes.
batch-data-streams N S     Serie de elementos bds
      bds Consulte el elemento bds  
step-scheduling N S     Puede aplicarse al elemento job-steps para crear flujos condicionales según el código de retorno para un trabajo por lotes. Puede comparar los valores de códigos de retorno definidos para este trabajo por lotes para determinar si un paso debe invocarse o no durante el proceso de un trabajo por lotes. Los valores de códigos de retorno se comparan utilizando el elemento returncode-expression.
      returncode- expression Consulte returncode-expression Returncode- expression que se va a evaluar.
        condition Si hay más de un elemento returncode-expression en el elemento step-scheduling, los operadores condicionales pueden aplicarse a éstos. Los operadores condicionales son: AND, OR.
returncode-expression N S     Se utiliza bajo los códigos de step-scheduling para decidir si un paso de trabajo por lotes va a ejecutarse en función de los códigos de retorno de otros pasos de trabajo.
        step Nombre de paso cuyo código de retorno se va a comparar en esta expresión.
        operator Operador que se va a utilizar para la expresión de código de retorno. Los operadores admitidos son: eq (igual a), lt (menor que), gt (mayor que), le (menor o igual que), ge (mayor o igual que).
        value El valor con el que se va a comparar el código de retorno.
step-scheduling-criteria N S     Describe la secuencia en la que se procesarán los pasos de trabajo. Actualmente, se da soporte a la planificación secuencial, es decir, los pasos se invocan en el orden en el que aparecen en xJCL.
      scheduling-mode   Secuencia en la que deben invocarse los pasos, siendo secuencial el único valor posible en estos momentos.
checkpoint-algorithm N S     Declara un algoritmo de punto de control que puede utilizarse para un paso de trabajo por lotes.
        name Nombre de algoritmo.
      classname   Clase que implementa este algoritmo.
      props Consulte el elemento props Secuencia de elementos prop para el algoritmo de punto de control.
checkpoint-algorithm-ref N S     Referencia al elemento de un algoritmo de punto de control.
        name Nombre del algoritmo de punto de control al que se hace referencia.
      props Consulte el elemento props Secuencia de elementos prop para el algoritmo de punto de control.

* Sólo se da soporte a los trabajos con una actividad de proceso intensiva y de un único paso.

Esquema XML para 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>

 

Ejemplo xJCL de un trabajo por lotes

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

Ejemplo xJCL de un trabajo con una actividad de proceso intensiva

En la actualidad, sólo se da soporte a los trabajos con una actividad de proceso intensiva.
<?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
Esquema XML para xJCL

Tema de concepto    

Condiciones de uso | Comentarios Última actualización: Mar 14, 2006 11:03:53 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. Reservados todos los derechos.
Este centro de información se ha realizado con tecnología de Eclipse. (http://www.eclipse.org)