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:
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.
<?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
Esquema XML para xJCL