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

Elementos xJCL

As tarefas são expressas utilizando um dialeto XML (Extensible Markup Language) chamado xJCL (XML Job Control Language). O xJCL possui construções para expressar todas as informações necessárias para tarefas de computação intensiva e do batch, embora alguns elementos de xJCL sejam aplicáveis apenas a tarefas de computação intensiva ou do batch. Consulte o xJCL fornecido com os aplicativos de amostra, a tabela xJCL e o documento do esquema xJCL XSD para obter informações adicionais sobre o xJCL. Observe que a definição xJCL de uma tarefa não faz parte do aplicativo de longa execução. Ela é construída separadamente e submetida ao planejador de longa execução para execução. O planejador de execução longa utiliza as informações no xJCL para determinar onde e quando a tarefa deve ser executada.

A tabela a seguir resume os elementos xJCL:

Table 1. Elementos xJCL
Elemento Computação Intensiva Batch Subelemento Atributos Descrição
tarefa S S     Define o escopo da descrição de uma tarefa do batch.
  S S   name Nome da tarefa. Esse nome deve corresponder ao nome do aplicativo de longa execução
  S S jndi-name   O nome JNDI fornecido ao bean de sessão sem preservação de estado do controlador de tarefas quando o aplicativo de longa execução é implementado no WebSphere Application Server.
  S S step-scheduling-criteria Consulte o elemento step-scheduling-criteria  
  A S checkpoint-algorithm Consulte o elemento checkpoint-algorithm  
  S S job-step Consulte o elemento job-step  
job-step          
  S* S   name Nome da etapa. Essas informações são retornadas nos comandos operacionais.
  A S step-scheduling Consulte o elemento step-scheduling Permite a lógica condicional baseada em códigos de retorno de etapas que determinam se a etapa de batch deve ser chamada ou não
  A S checkpoint-algorithm-ref Consulte o elemento checkpoint-algorithm-ref Especifica o algoritmo de ponto de verificação a ser utilizado para a etapa da tarefa do batch.
  S A classname   Nome completo da classe que implementa a tarefa de computação intensiva.
  A S JNDI-name   Nome JNDI lógico do home para o bean de entidade (bean de etapa do batch) que o ambiente de execução do batch utilizará para carregar com a etapa de tarefa do batch.
      props Consulte o elemento props Propriedades Name-value a serem transmitidas para a etapa
  A S batch-data-streams Consulte o elemento batch-data-streams Uma seqüência de elementos bds. Cada bds contém as informações de configuração necessárias para criar um fluxo de dados de batch.
prop S S     Uma única instância de um par nome-valor que serve como uma propriedade.
        name Nome da propriedade.
        value Valor da propriedade.
props S S     Série de elementos prop que é utilizada para transmitir as propriedades do par nome-valor para etapas, bds, algoritmos de ponto de verificação e algoritmos de resultados.
      prop Consulte o elemento prop  
bds A S     Única instância de uma implementação do fluxo de dados em batch disponibilizada para utilização pela tarefa do batch.
      logical-name   Logical-name é uma cadeia incorporada na etapa do batch utilizada pela etapa do batch para solicitar do ambiente de execução do batch uma instância do fluxo de dados em batch específica.
      impl-class   Nome completo da classe da classe de implementação do fluxo de dados em batch.
      props Consulte os elementos Props Lista de propriedades transmitidas para a classe de implementação do fluxo de dados em batch.
batch-data-streams A S     Série de elementos bds
      bds consulte o elemento bds  
step-scheduling A S     Pode ser aplicado a etapas de tarefas para criar fluxos condicionais baseados em código de retorno para uma tarefa do batch. Pode comparar valores de códigos de retorno definidos para esta tarefa do batch para decidir se uma etapa deve ser chamada ou não durante o processamento de uma tarefa do batch. Os valores dos códigos de retorno são comparados utilizando o elemento returncode-expression.
      returncode- expression consulte returncode-expression Returncode- expression a ser avaliado.
        condition Se houver mais de um elemento returncode-expression no elemento step-scheduling, os operadores condicionais poderão ser aplicados a eles. Os operadores condicionais suportados são: AND, OR.
returncode-expression A S     Utilizado em tags step-scheduling para decidir se uma etapa de tarefa do batch deve ser executada com base em códigos de retorno de outras etapas da tarefa.
        step Nome da etapa cujo código de retorno será comparado nesta expressão.
        operador Operador a ser utilizado para a expressão de código de retorno; os operadores suportados são: eq (igual), lt (menor que), gt (maior que), le (menor ou igual a), ge (maior ou igual a).
        value O valor com o qual comparar o código de retorno.
step-scheduling-criteria A S     Descreve a seqüência na qual as etapas da tarefa serão processadas. O planejamento seqüencial atual é suportado; ou seja, as etapas são chamadas na ordem em que aparecem no xJCL.
      scheduling-mode   Seqüência na qual chamar as etapas, o único valor possível no momento é sequential.
checkpoint-algorithm A S     Declara um algoritmo de ponto de verificação que pode ser utilizado para uma etapa de tarefa do batch.
        name Nome do algoritmo.
      classname   Classe que implementa este algoritmo.
      props consulte o elemento props Seqüência de elementos prop para o algoritmo de ponto de verificação.
checkpoint-algorithm-ref A S     Referência a um elemento de algoritmo de ponto de verificação.
        name Nome do algoritmo de ponto de verificação ao qual está se referindo.
      props consulte o elemento props Seqüência de elementos prop para o algoritmo de ponto de verificação.

* Apenas as tarefas de computação intensiva de etapa única são suportadas.

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>

 

Amostra xJCL para uma Tarefa do Batch

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

Amostra xJCL para uma Tarefa de Computação Intensiva

Atualmente, apenas as tarefas de computação intensiva de etapa única são suportadas.
<?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

Tópico de Conceito    

Termos de Uso | Feedback Última atualização: Mar 21, 2006 12:48:50 PM 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. Todos os Direitos Reservados.
Este centro de informações é desenvolvido em tecnologia Eclipse. (http://www.eclipse.org)