Los trabajos se expresan con un dialecto de XML (Extensible Markup Language) denominado Lenguaje de control de trabajos XML (xJCL). Este dialecto 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. La definición xJCL de un trabajo no forma parte de la aplicación de Compute Grid, pero se construye aparte y se envía al planificador de trabajos para que la ejecute. El planificador de trabajos 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:
Elemento | Cálculo intensivo | Por lotes | Subelemento | Atributos | Descripción |
---|---|---|---|---|---|
job | S | S | no se aplica | no se aplica | Ámbito de la descripción de un trabajo por lotes. |
no se aplica | S | S | no se aplica | name | Nombre del trabajo. Este nombre tiene que coincidir con el nombre de la aplicación de Compute Grid. |
no se aplica | S | S | jndi-name | no se aplica | Nombre JNDI que se asigna al bean de sesión sin estado del controlador de trabajos cuando la aplicación de Compute Grid se despliega en WebSphere Application Server. |
no se aplica | S | S | step-scheduling-criteria | Consulte el elemento step-scheduling-criteria | no se aplica |
no se aplica | N | S | checkpoint-algorithm | Consulte el elemento checkpoint-algorithm | no se aplica |
no se aplica | S | S | job-step | Consulte el elemento job-step | no se aplica |
job-step | no se aplica | no se aplica | no se aplica | no se aplica | no se aplica |
no se aplica | Y++ | S | no se aplica | name | Nombre del paso. Esta información se devuelve en los mandatos operativos. |
no se aplica | N | S | step-scheduling | Consulte el elemento step-scheduling | Permite la lógica condicional basada en los códigos de retorno de los pasos que determinan si debe invocarse o no el paso por lotes |
no se aplica | 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. |
no se aplica | S | N | classname | no se aplica | Nombre plenamente cualificado de la clase que implementa el trabajo con una actividad de proceso intensiva. |
no se aplica | N | S | JNDI-name | no se aplica | Nombre JNDI lógico de la factoría del bean de paso por lotes del bean de entidad que el entorno de tiempo de ejecución por lotes utiliza para cargar el paso de trabajo por lotes. |
no se aplica | no se aplica | no se aplica | props | Consulte el elemento props | Propiedades nombre-valor que se van a pasar al paso |
no se aplica | 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 | no se aplica | no se aplica | Instancia única de un par de nombre y valor que sirve de propiedad. |
no se aplica | no se aplica | no se aplica | no se aplica | name | Nombre de la propiedad. |
no se aplica | no se aplica | no se aplica | no se aplica | value | Valor de la propiedad. |
props | S | S | no se aplica | no se aplica | 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. |
no se aplica | no se aplica | no se aplica | prop | Consulte el elemento prop | no se aplica |
bds | N | S | no se aplica | no se aplica | Instancia única de implementación de una secuencia de datos por lotes a la que puede acceder el trabajo por lotes para utilizarla. |
no se aplica | no se aplica | no se aplica | logical-name | no se aplica | Serie incorporada en el paso por lotes que éste utiliza para pedir al entorno de tiempo de ejecución por lotes una instancia específica de secuencia de datos por lotes. |
no se aplica | no se aplica | no se aplica | impl-class | no se aplica | Nombre de clase plenamente cualificado de la clase de implementación de la secuencia de datos por lotes. |
no se aplica | no se aplica | no se aplica | 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 | no se aplica | no se aplica | Serie de elementos bds |
no se aplica | no se aplica | no se aplica | bds | Consulte el elemento bds | no se aplica |
step-scheduling | N | S | no se aplica | no se aplica | Puede aplicarse a los pasos de trabajo para crear flujos condicionales basados en 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 se invoca o no durante el proceso de un trabajo por lotes. Los valores de códigos de retorno se comparan utilizando el elemento de expresión de código de retorno. |
no se aplica | no se aplica | no se aplica | returncode- expression | Consulte returncode-expression | Expresión returncode- para la evaluación. |
no se aplica | no se aplica | no se aplica | no se aplica | 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 soportados son: AND, OR. |
returncode-expression | N | S | no se aplica | no se aplica | Se utiliza para los códigos de planificación de pasos para decidir si se ejecuta un paso de trabajo por lotes en función de los códigos de retorno de otros pasos de trabajo. |
no se aplica | no se aplica | no se aplica | no se aplica | step | Nombre de paso cuyo código de retorno se va a comparar en esta expresión. |
no se aplica | no se aplica | no se aplica | no se aplica | 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). |
no se aplica | no se aplica | no se aplica | no se aplica | value | El valor con el que se va a comparar el código de retorno. |
step-scheduling-criteria | N | S | no se aplica | no se aplica | Describe la secuencia en la que se procesarán los pasos de trabajo. Actualmente, se da soporte a la planificación secuencial y los pasos se invocan en el orden en el que aparecen en xJCL. |
no se aplica | no se aplica | no se aplica | scheduling-mode | no se aplica | Secuencia en la que deben invocarse los pasos: el único valor posible es sequential. |
checkpoint-algorithm | N | S | no se aplica | no se aplica | Declara un algoritmo de punto de control que puede utilizarse para un paso de trabajo por lotes. |
no se aplica | no se aplica | no se aplica | no se aplica | name | Nombre de algoritmo. |
no se aplica | no se aplica | no se aplica | classname | no se aplica | Clase que implementa este algoritmo. |
no se aplica | no se aplica | no se aplica | props | Consulte el elemento props | Secuencia de elementos props para el algoritmo de punto de control. |
checkpoint-algorithm-ref | N | S | no se aplica | no se aplica | Referencia al elemento de un algoritmo de punto de control. |
no se aplica | no se aplica | no se aplica | no se aplica | name | Nombre del algoritmo de punto de control al que se hace referencia. |
no se aplica | no se aplica | no se aplica | 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.
La siguiente tabla resume los elementos xJCL:
Elemento | Con actividad de proceso intensiva J2EE | Por lotes J2EE | Programa de utilidad nativo | Subelemento | Atributos | Descripción |
---|---|---|---|---|---|---|
job | S | S | N | Ámbito de la descripción de un trabajo por lotes. | ||
S | S | S | name | Nombre del trabajo. Tiene que coincidir con el nombre de la aplicación de Compute Grid | ||
S | S | S | accounting | Atributo de información de cuenta opcional. | ||
S | S | S | clase | Atributo de clase de trabajo opcional, que identifica la clase de trabajo bajo la que se ejecutará el trabajo. | ||
S | S | S | default-application-name | El nombre de aplicación que se va a utilizar cuando no se encuentre ningún atributo application-name de paso de trabajo. | ||
S | S | N | jndi-name | Nombre JNDI que se asigna al bean de sesión sin estado del controlador de trabajos cuando la aplicación de Compute Grid se despliega en WebSphere Application Server. | ||
S | S | S | job-scheduling criteria | required-capability | La capacidad necesaria del trabajo, que debe definirse en un punto final para que se entregue el trabajo a ese punto final. | |
S | S | N | criterios de step-scheduling |
consulte el elemento step-scheduling-criteria | ||
N | S | N | algoritmo de punto de control | consulte el elemento checkpoint-algorithm | ||
N | S | S | results-algorithm | consulte el elemento results-algorithms | ||
S | S | S | substitution-props++ |
consulte el elemento prop | La required-capability del trabajo, que debe definirse en un punto final para que se entregue el trabajo a ese punto final. | |
job-step | ||||||
S* | S | N | name | Nombre del paso opcional. Esta información se devuelve en los mandatos operativos. | ||
S* | S | N | application-name | Nombre opcional de la aplicación ejecutada mediante el paso. Se utiliza el nombre de atributo si se omite application-name y se omite el atributo de nivel de trabajo default-application-name. | ||
N | S | N | 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 | N | JNDI-name | Nombre JNDI lógico de la factoría del bean de paso por lotes del bean de entidad con el que el entorno de ejecución por lotes cargará el paso de trabajo por lotes. | ||
S | S | N | classname | Nombre plenamente cualificado de la clase que implementa el trabajo con una actividad de proceso intensiva. | ||
S | N | N | checkpoint-algorithm-ref | Especifica el algoritmo de punto de control que se va a utilizar para el paso de trabajo por lotes. | ||
N | S | N | results-ref | Consulte el elemento results-ref | Especifica el algoritmo de resultados que se va a utilizar para la ejecución condicional del paso de trabajo por lotes. | |
N | S | N | 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. | |
S | S | N | props | Consulte el elemento props | Propiedades nombre-valor que se van a pasar al paso. | |
N | N | S | exec | Consulte el elemento exec | Identifica el ejecutable asociado al paso de trabajo. | |
N | N | S | env-entries | Consulte el elemento env-entries | Identifica las propiedades de entorno asociadas al paso de trabajo. | |
prop | S | S | N | 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 | N | prop | Consulte el elemento prop | |
env-entries | N | N | 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. | ||
env-var | Consulte el elemento env-var | |||||
exec | N | N | 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. | ||
executable | Nombre del ejecutable asociado al paso de trabajo. | |||||
arg | Consulte el elemento line | |||||
line | N | N | S | Argumentos de línea de mandatos pasados al ejecutable del paso de trabajo. | ||
bds | N | S | N | Instancia única de implementación de una secuencia de datos por lotes a la que puede acceder el trabajo por lotes. | ||
logical-name | Serie incorporada en el paso por lotes, que la utiliza para consultar al entorno de tiempo 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 los elementos 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 | N | Serie de elementos bds | ||
bds | Consulte el elemento bds | |||||
step-scheduling | N | S | Se aplica a los pasos de trabajo para crear flujos condicionales basados en el código de retorno para un trabajo por lotes. Compara los valores de códigos de retorno definidos para este trabajo por lotes para determinar si un paso se invoca 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 se aplican a éstos. Los operadores condicionales soportados 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. |
++ substitution-props del elemento xJCL se describe más abajo.
<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>
La sustitución de las variables simbólicas se produce durante la ejecución. Durante la ejecución, la serie ${nombre-variable} se sustituye por el valor de la propiedad cuando el xJCL se somete para ejecución. Utilizando las propiedades del ejemplo anterior, la serie ${checkpoint} se sustituye por la serie basada en el tiempo antes de que se someta el trabajo.
Las variables simbólicas pueden ser indirectas. Por ejemplo: name=FILENAME value=${${filename}} utilizado con el par de nombre y valor filename=postingsDataStream obtiene el mismo resultado que si se especifica name=FILENAME value=${postingsDataStream}.
Las variables simbólicas también pueden ser compuestas. Por ejemplo, name=postingsDataStream value=${was.install.root}${file.separator}temp${file.separator}postings.
Los pares de nombre y valor no tienen que definirse en el elemento substitution-props del documento de trabajo. Los pares de nombre y valor de props definidos en el elemento substitution-props son valores predeterminados de las variables indicadas. Si no se definen en el elemento substitution-props, los pares de nombre y valor se deben pasar mediante las API del Planificador de trabajos cuando se somete el trabajo o definirse en las propiedades del sistema para la JVM. Todas las variables simbólicas definidas en el cuerpo de un documento de trabajo se deben resolver para que el xJCL se considere válidos. Todos los pares de nombre y valor definidos en el documento de trabajo deben resolverse con una variable simbólica que se encuentra en el cuerpo del xJCL para que el xJCL se considere válido.
Si los pares de nombre y valor se definen en el documento xJCL y se pasan a las API del Planificador de trabajos durante el sometimiento, los pares de nombre y valor pasados mediante las API del Planificador de trabajos alteran temporalmente los valores predeterminados definidos en el documento xJCL. Si los pares de nombre y valor nunca se pasan mediante las API del Planificador de trabajos ni se definen como valores predeterminados del documento xJCL, los pares de nombre y valor de las variables simbólicas deben definirse en las propiedades de JVM del sistema para que el xJCL se considere válido.