Paso de trabajo del programa de utilidad CommandRunner
Utilice el paso de trabajo del programa de utilidad CommandRunner para ejecutar líneas de mandatos de shell como pasos de trabajo. Las líneas de mandatos de shell pueden incluir mandatos de shell, scripts de shell y programas compilados.
El programa de utilidad CommandRunner ejecuta la línea de mandatos de shell especificada en un proceso de sistema operativo. La salida estándar y las secuencias de errores estándar se capturan y graban en los registros de trabajo. El código de retorno de línea de mandatos se captura y se establece como el código de retorno del paso. Si el paso de trabajo se cancela, el código de retorno es -8.
Sintaxis del mandato
<job-step name={nombre_paso}>
<classname>com.ibm.websphere.batch.utility.CommandRunner</classname>
{propiedades_paso_trabajo}
</job-step>
<job-step name="RunJava">
<classname>com.ibm.websphere.batch.utility.CommandRunner</classname>
<props>
<prop name="com.ibm.websphere.batch.cmdLine"
value="java.exe com.ibm.websphere.batch.samples.TestCase" />
<prop name="CLASSPATH" value="${user.dir}\testcases;${user.dir}\bin" />
<prop name="Path" value="${java.home}\bin;${env:Path}" />
</props>
</job-step>
Propiedad de paso de trabajo obligatoria
- com.ibm.websphere.batch.cmdLine
- Especifica la invocación de línea de mandatos, incluidos los argumentos. Por ejemplo, ejecute el archivo java.exe como línea de mandatos:
<prop name="com.ibm.websphere.batch.cmdLine" value="java.exe com.ibm.websphere.batch.samples.TestCase" />
Propiedades opcionales del paso de trabajo
- com.ibm.websphere.batch.workingDir
- Especifica el directorio de trabajo en el que se ejecuta la línea de mandatos especificada.
Por ejemplo, habilite /tmp como directorio de trabajo en Linux:
<prop name="com.ibm.websphere.batch.workingDir" value="/tmp" />
El valor predeterminado es undefined (sin definir).
- com.ibm.websphere.batch.debug
- Especifica true o false para indicar si la línea de mandatos se ejecuta en modalidad de depuración. La modalidad
de depuración imprime mensajes de depuración para ayudarle a resolver problemas con la sustitución de variables y otros problemas que impiden que las líneas
de mandatos se
ejecuten correctamente. Por ejemplo, habilite la modalidad de depuración:
<prop name="com.ibm.websphere.batch.debug" value="true" />
El valor predeterminado es false.
- com.ibm.websphere.batch.expansion
- Especifica true o false para habilitar o inhabilitar la ampliación de propiedades de paso de trabajo, que también se conoce
como sustitución de propiedades. Inhabilite esta característica para mejorar el rendimiento en pasos con correlaciones de
propiedad grandes que no dependen de la ampliación de propiedades. Por ejemplo, inhabilite la ampliación de propiedades:
<prop name="com.ibm.websphere.batch.expansion" value="false" />
El valor predeterminado es true.
- com.ibm.websphere.batch.shell.executor
- Especifica el mandato ejecutor de shell. Utilice esta propiedad para especificar una shell personalizada como ejecutor de línea de mandatos. Por ejemplo, especifique una shell personalizada como fastshell:
<prop name="com.ibm.websphere.batch.shell.executor" value="fasthell" />
El valor predeterminado es el valor de la propiedad del sistema com.ibm.websphere.batch.command.runner.shell.executor.
- com.ibm.websphere.batch.shell.failure.rc
- Especifica el código de retorno de anomalía de la ejecución de shell. El ejecutor de shell devuelve este código de retorno para indicar que la línea de
mandatos especificada no puede ejecutarse. Cuando el código de retorno del ejecutor de shell coincide con el valor del código de retorno de anomalía de
shell, el
trabajo del programa de utilidad CommandRunner establece el código de retorno del paso de trabajo en el valor de la propiedad
com.ibm.websphere.batch.step.failure.rc. Por ejemplo, la shell devuelve -1 cuando la línea de mandatos especificada no puede ejecutarse:
<prop name="com.ibm.websphere.batch.shell.failure.rc" value="-1" />
El valor predeterminado es el valor de la propiedad del sistema com.ibm.websphere.batch.command.runner.shell.failure_rc.
- com.ibm.websphere.batch.step.failure.rc
- Especifica el código de retorno del paso de trabajo cuando la línea de mandatos no puede ejecutarse. Este código de retorno del paso de trabajo se
devuelve cuando el código de retorno del ejecutor de shell coincide con el valor de com.ibm.websphere.batch.shell.failure.rc. Por ejemplo, el paso de trabajo devuelve -1 cuando shell no puede ejecutarse:
<prop name="com.ibm.websphere.batch.step.failure.rc" value="-1" />
Propiedades del sistema
Todas las demás propiedades de sistema del programa de utilidad CommandRunner son opcionales.- com.ibm.websphere.batch.command.runner.shell.executor
- Especifica el valor predeterminado para la propiedad del paso de trabajo com.ibm.websphere.batch.shell.executor.
El valor predeterminado es cmd.exe/c.
El valor predeterminado es sh –c.
- com.ibm.websphere.batch.command.runner.shell.failure_rc
- Especifica el valor predeterminado para la propiedad del paso de trabajo com.ibm.websphere.batch.shell.failure.rc.
El valor predeterminado es 1.
El valor predeterminado es 127.
Sustitución de propiedades
El paso de trabajo del programa de utilidad CommandRunner da soporte a la sustitución de propiedades para la ampliación. Puede realizar la ampliación utilizando propiedades de sustitución de xJCL, propiedades del sistema Java y variables de proceso, como se muestra en los ejemplos siguientes.- Propiedad de sustitución xJCL
- En el ejemplo siguiente se sustituye la propiedad de sustitución xJCL testcase.dir como directorio de trabajo.
<prop name="com.ibm.websphere.batch.workingDir" value="${testcase.dir}" />
- Propiedad del sistema Java
- En el ejemplo siguiente se sustituye la propiedad del sistema Java user.dir en la
variable de proceso CLASSPATH:
<prop name="CLASSPATH" value="${user.dir}/classes" />
- Variable de proceso
- El ejemplo siguiente sustituye la variable de proceso PATH por el nuevo valor de la variable de proceso PATH:
<prop name="PATH" value="/tmp:${env:PATH}" />
Importante: Las propiedades de sustitución se tratan como propiedades del sistema Java si se visualizan en la lista de propiedades del sistema Java. De lo contrario, se tratan como propiedades de sustitución xJCL. La sustitución de variables de proceso se indica mediante la sintaxis especial ${env:<nombre variable>}.