Elementos xJCL
Tarefas são expressadas usando um dialeto Linguagem de Marcação Extensível (XML) chamado xJCL (Linguagem de Controle de Tarefas XML). Esse dialeto possui construções para expressar todas as informações necessárias para tarefas de cálculo intenso e em lote, embora alguns elementos do xJCL sejam aplicáveis apenas a tarefas de cálculo intenso e em lote. 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. A definição de xJCL de uma tarefa não faz parte do aplicativo em lote, mas é construída separadamente e enviada para o planejador de tarefa para execução. O planejador de tarefa usa informações no xJCL para determinar onde e quando executar a tarefa.
Elementos xJCL
A tabela a seguir resume os elementos xJCL.
Elemento | Java EE de processamento intensivo de informações | Java EE em Lote | Subelemento | Atributos | Description |
---|---|---|---|---|---|
tarefa | sim | sim | Define o escopo da descrição de uma tarefa do batch. | ||
tarefa | sim | sim | name | Nome da tarefa. Este nome deve corresponder ao nome do aplicativo em lote a menos que default-application-name esteja especificado. | |
tarefa | sim | sim | accounting | Atributo de informações adicionais de contabilidade. | |
tarefa | sim | sim | class | Atributo opcional da classe de tarefa, que identifica a classe de tarefa sob a qual a tarefa será executada. | |
tarefa | sim | sim | default-application-name | O nome do aplicativo a ser utilizado quando nenhum atributo
application-name de etapa da tarefa for localizado. O nome do aplicativo a ser usado. Para aplicativos em lote OSGi, formate o nome como osgi:<nome eba>:<versão>. |
|
tarefa | sim | sim | jndi-name | O nome JNDI que é dado ao bean da sessão stateless do controlador de tarefas quando o aplicativo em lote é implementado no produto. | |
tarefa | sim | sim | critérios de job-scheduling | required-capability | O required-capability da tarefa, que deve ser definido em um terminal para a tarefa a ser despachada para esse terminal. |
tarefa | sim | sim | critérios de step-scheduling | Consulte o elemento step-scheduling-criteria | |
tarefa | não | sim | checkpoint-algorithm | Consulte o elemento checkpoint-algorithm | |
tarefa | não | sim | results-algorithm | Consulte o elemento results-algorithms | |
tarefa | sim | sim | substitution-props++ | Consulte o elemento prop | O required-capability da tarefa, que deve ser definido em um terminal para a tarefa a ser despachada para esse terminal |
job-step | sim* | sim | name | Nome opcional da etapa. Essas informações são retornadas nos comandos operacionais. | |
job-step | sim* | sim | application-name | Nome opcional do aplicativo executado pela etapa. O nome do atributo é utilizado se application-name for omitido e o atributo no nível da tarefa default-application-name for omitido. | |
job-step | não | sim | step-scheduling | Consulte o elemento step-scheduling | Permite a lógica condicional com base nos códigos de retorno de etapas que determina se a etapa de lote é chamada. |
job-step | sim | sim | nome de classe | Nome completo da classe que implementa a tarefa de computação intensiva. | |
job-step | sim | não | checkpoint-algorithm-ref | Especifica o algoritmo de ponto de verificação a ser utilizado para a etapa da tarefa do batch. | |
job-step | não | sim | results-ref | Consulte o elemento results-ref | Especifica o algoritmo de resultados a ser utilizado para a execução da etapa da tarefa do lote. |
job-step | não | sim | batch-data-streams | Consulte o elemento batch-data-streams | Uma sequência de elementos bds. Cada bds contém as informações de configuração necessárias para criar um fluxo de dados de batch. |
job-step | sim | sim | props | Consulte o elemento props | Propriedades Name-value a serem transmitidas para a etapa. |
job-step | não | não | exec | Consulte o elemento exec | Identifica a executável associada à etapa da tarefa. |
job-step | não | não | env-entries | Consulte o elemento env-entries | Identifica as propriedades ambientais associadas à etapa da tarefa. |
prop | sim | sim | Uma única instância de um par nome-valor que serve como uma propriedade. | ||
prop | sim | sim | name | Nome da propriedade. | |
prop | sim | sim | Value | Valor da propriedade. | |
props | sim | sim | prop | Consulte o elemento prop | |
env-entries | não | não | Série de elementos de propriedades que são usados para passar propriedades de pares nome-valor para etapas, bds, algoritmos de ponto de verificação e algoritmos de resultados. | ||
env-entries | não | não | env-var | Consulte o elemento env-var | |
exec | não | não | Série de elementos de propriedades que são usados para passar propriedades de pares nome-valor para etapas, bds, algoritmos de ponto de verificação e algoritmos de resultados. | ||
exec | não | não | executable | O nome da executável associada à etapa da tarefa. | |
exec | não | não | arg | Consulte o elemento line | |
line | não | não | Argumentos da linha de comandos passados para o executável da etapa da tarefa. | ||
bds | não | sim | Única instância de uma implementação do fluxo de dados em lote disponibilizada para a tarefa em lote. | ||
bds | não | sim | logical-name | Uma cadeia incorporada na etapa de lote e utilizada por ela para solicitar do ambiente de tempo de execução em lote uma instância do fluxo de dados em lote específica. | |
bds | não | sim | impl-class | Nome completo da classe da classe de implementação do fluxo de dados em lote. | |
bds | não | sim | props | Consulte os elementos props | Lista de propriedades transmitidas para a classe de implementação do fluxo de dados em lote. |
batch-data-streams | não | sim | Série de elementos bds | ||
batch-data-streams | não | sim | bds | Consulte o elemento bds | |
step-scheduling | não | sim | Aplica-se a etapas de tarefas para criar fluxos condicionais baseados em código de retorno de uma tarefa em lote. Compara valores de códigos de retorno definidos para essa tarefa em lote para decidir se uma etapa será chamada ou não durante o processamento de uma tarefa em lote. Os valores dos códigos de retorno são comparados utilizando o elemento returncode-expression. | ||
step-scheduling | não | sim | returncode- expression | consulte returncode-expression | Returncode- expression a ser avaliado. |
step-scheduling | não | sim | condição | Se houver mais de um elemento returncode-expression no elemento step-scheduling, os operadores condicionais serão aplicados a eles. Os operadores condicionais suportados são: AND, OR. | |
returncode-expression | não | sim | Usado em tags de planejamento de etapas para decidir se uma etapa de tarefa em lote será executada com base em códigos de retorno de outras etapas da tarefa. | ||
returncode-expression | não | sim | step | Nome da etapa cujo código de retorno será comparado nesta expressão. | |
returncode-expression | não | sim | operador | Operador a ser usado para a expressão do código de retorno. Os operadores suportados são eq para igual, lt para menor que, gt para maior que, le para menor ou igual a, e ge para maior ou igual a. | |
returncode-expression | não | sim | Value | O valor com o qual comparar o código de retorno. | |
step-scheduling-criteria | não | sim | Descreve a sequência na qual as etapas da tarefa serão processadas. Atualmente, o planejamento sequencial é suportado; por exemplo, as etapas são chamadas na ordem em que existem no xJCL. | ||
step-scheduling-criteria | não | sim | scheduling-mode | Sequência na qual chamar as etapas, o único valor possível no momento é sequential. | |
checkpoint-algorithm | não | sim | Declara um algoritmo de ponto de verificação que pode ser utilizado para uma etapa de tarefa do batch. | ||
checkpoint-algorithm | não | sim | name | Nome do algoritmo. | |
checkpoint-algorithm | não | sim | nome de classe | Classe que implementa este algoritmo. | |
checkpoint-algorithm | não | sim | props | Consulte o elemento props | Sequência de elementos prop para o algoritmo de ponto de verificação. |
checkpoint-algorithm-ref | não | sim | Referência a um elemento de algoritmo de ponto de verificação. | ||
checkpoint-algorithm-ref | não | sim | name | Nome do algoritmo de ponto de verificação que está sendo referenciado. | |
checkpoint-algorithm-ref | não | sim | props | Consulte o elemento props. | Sequência de elementos prop para o algoritmo de ponto de verificação. |
++ O elemento xJCL substitution-props é discutido na seção seguinte.
substitution-props do xJCL
<checkpoint-algorithm-ref name="${checkpoint}" />
<substitution-props>
<prop name="wsbatch.count" value="5" />
<prop name="checkpoint" value="timebased" />
<prop name="checkpointInterval" value="15" />
<prop name="postingsDataStream" value="${was.install.root}${file.separator}temp${file.separator}postings" />
</substitution-props>
A substituição de variáveis simbólicas ocorre no tempo de execução. No tempo de execução, a cadeia ${variable-name} é substituída pelo valor da propriedade quando o xJCL é enviado para execução. Usando as propriedades no exemplo anterior, a sequência ${checkpoint} é substituída pela sequência time-based antes da tarefa ser enviada.
Variáveis simbólicas podem ser indiretas. Por exemplo: name=FILENAME value=${${filename}} utilizado com o par nome/valor filename=postingsDataStream utiliza o mesmo resultado de especificar name=FILENAME value=${postingsDataStream}.
Variáveis simbólicas também podem ser compostas. Por exemplo, name=postingsDataStream value=${was.install.root}${file.separator}temp${file.separator}postings.
Os pares nome/valor não devem ser definidos no elemento substitution-props do documento de tarefas. Os pares nome/valor props definidos no elemento substitution-props são valores padrão para as variáveis denominadas. Se não forem definidos no elemento substitution-props, os pares nome/valor devem ser transmitidos nas APIs do planejador de tarefas quando a tarefa for enviada ou definidas nas propriedades de sistema para a JVM. Cada variável simbólica definida no corpo de um documento de tarefas deve ser resolvido para que o xJCL seja considerado válido. Cada par nome/valor definido no documento de tarefas deve ser resolvido para uma variável simbólica localizada no corpo do xJCL para que o xJCL seja considerado válido.
Se os pares nome/valor forem definidos no documento do xJCL e transmitidos para as APIs do planejador de tarefas no momento do envio da tarefa, os pares nome/valor transmitidos nas APIs do Planejador de Tarefas irão sobrepor os valores padrão definidos no documento do xJCL. Se pares nome/valor não forem transmitidos nas APIs do planejador de tarefas nem definidos como padrões no documento do xJCL, os pares nome/valor para as variáveis simbólicas devem ser definidos nas propriedades da JVM do sistema para que o xJCL seja considerado válido.
- ${was.install.root}
- ${user.install.root}
- ${agent.home}