Jobabschnitt für Dienstprogramm "CommandRunner"
Verwenden Sie den Jobabschnitt für das Dienstprogramm "CommandRunner", um Shellbefehlszeilen als Jobabschnitte auszuführen. Zu den Shellbefehlszeilen gehören Shellbefehle, Shell-Scripts und kompilierte Programme.
Das Dienstprogramm "CommandRunner" führt die angegebene Shellbefehlszeile in einem Betriebssystemprozess aus. Standardausgabe- und Standardfehlerdatenströme werden erfasst und in das Jobprotokoll geschrieben. Der Rückkehrcode der Befehlszeile wird erfasst und als Rückkehrcode für den Abschnitt definiert. Wenn der Jobabschnitt abgebrochen wird, ist der Rückkehrcode -8.
Befehlssyntax
<job-step name={Abschnittsname}>
<classname>com.ibm.websphere.batch.utility.CommandRunner</classname>
{Jobaschnittseigenschaften}
</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>
Erforderliche Jobabschnittseigenschaft
- com.ibm.websphere.batch.cmdLine
- Gibt den Befehlszeilenaufruf, einschließlich Argumenten, an. Führen Sie beispielsweise die Datei java.exe als Befehlszeile aus:
<prop name="com.ibm.websphere.batch.cmdLine" value="java.exe com.ibm.websphere.batch.samples.TestCase" />
Optionale Jobabschnittseigenschaften
- com.ibm.websphere.batch.workingDir
- Gibt das Arbeitsverzeichnis an, in dem die angegebene Befehlszeile ausgeführt wird.
Aktivieren Sie beispielsweise /tmp als Arbeitsverzeichnis unter Linux:
<prop name="com.ibm.websphere.batch.workingDir" value="/tmp" />
Standardmäßig wird kein Verzeichnis definiert.
- com.ibm.websphere.batch.debug
- Gibt true oder false an, um anzuzeigen, ob die Befehlszeile im Debugmodus ausgeführt wird oder nicht.
Im Debugmodus werden Debugnachrichten ausgegeben, die Ihnen bei der Behebung von Problemen bei der
Variablensubstitution oder anderen Problemen helfen, die eine ordnungsgemäße Ausführung von Befehlszeilen verhindern.
Aktivieren Sie beispielsweise den Debugmodus wie folgt:
<prop name="com.ibm.websphere.batch.debug" value="true" />
Der Standardwert ist false.
- com.ibm.websphere.batch.expansion
- Gibt true oder false an, um die Eigenschaftserweiterung von Jobabschnitten, auch Eigenschaftensubstitution genannt, zu aktivieren oder zu inaktivieren.
Inaktivieren Sie dieses Feature, um die Abschnittsleistung für Abschnitte mit umfangreichen Eigenschaftsübersichten zu verbessern, die
nicht von der Eigenschaftenerweiterung abhängig sind.
Inaktivieren Sie beispielsweise die Eigenschaftenerweiterung:
<prop name="com.ibm.websphere.batch.expansion" value="false" />
Der Standardwert ist true.
- com.ibm.websphere.batch.shell.executor
- Gibt den Shellsteuerprogrammbefehl an. Verwenden Sie diese Eigenschaft, um eine angepasste Shell als Befehlszeilensteuerprogramm anzugeben.
Geben Sie beispielsweise eine angepasste Shell als fastshell an:
<prop name="com.ibm.websphere.batch.shell.executor" value="fasthell" />
Der Standardwert ist der Wert der Systemeigenschaft "com.ibm.websphere.batch.command.runner.shell.executor".
- com.ibm.websphere.batch.shell.failure.rc
- Gibt den Rückkehrcode für einen Shellausführungsfehler an. Dieser Rückkehrcode
wird vom Shellsteuerprogramm zurückgegeben, um anzugeben, dass die angegebene Befehlszeile nicht ausgeführt werden kann.
Wenn der Rückkehrcode des Shellsteuerprogramms mit dem Rückkehrcodewert für Shellfehler übereinstimmt, setzt
der CommandRunner-Dienstprogrammjob den Rückkehrcode für den Jobabschnitt auf den Wert
der Eigenschaft "com.ibm.websphere.batch.step.failure.rc".
Die Shell gibt beispielsweise -1 zurück, wenn die angegebene Befehlszeile nicht ausgeführt werden kann:
<prop name="com.ibm.websphere.batch.shell.failure.rc" value="-1" />
Der Standardwert ist der Wert der Systemeigenschaft "com.ibm.websphere.batch.command.runner.shell.failure_rc".
- com.ibm.websphere.batch.step.failure.rc
- Gibt den Rückkehrcode für den Jobabschnitt an, wenn die Befehlszeile nicht ausgeführt werden kann.
Dieser Jobabschnittsrückkehrcode wird zurückgegeben, wenn der Rückkehrcode des Shellsteuerprogramms
mit dem Wert von "com.ibm.websphere.batch.shell.failure.rc" übereinstimmt.Der Jobabschnitt gibt beispielsweise -1 zurück, wenn die Shell nicht ausgeführt werden kann:
<prop name="com.ibm.websphere.batch.step.failure.rc" value="-1" />
Systemeigenschaften
Alle Systemeigenschaften des Dienstprogramms "CommandRunner" sind optional.- com.ibm.websphere.batch.command.runner.shell.executor
- Gibt den Standardwert für die Jobabschnittseigenschaft "com.ibm.websphere.batch.shell.executor" an.
Der Standardwert ist cmd.exe /c.
Der Standardwert ist sh –c.
- com.ibm.websphere.batch.command.runner.shell.failure_rc
- Gibt den Standardwert für die Jobabschnittseigenschaft "com.ibm.websphere.batch.shell.failure.rc" an.
Der Standardwert ist 1.
Der Standardwert ist 127.
Eigenschaftensubstitution
Der Jobabschnitt für den Dienstprogrammjob "CommandRunner" unterstützt die Eigenschaftensubstitution für die Erweiterung. Sie können die Erweiterung mithilfe von xJCL-Substitutionseigenschaften, Java-Systemeigenschaften und Prozessvariablen durchführen, wie in den folgenden Beispielen gezeigt wird.- xJCL-Substitutionseigenschaft
- Im folgenden Beispiel wird die xJCL-Substitutionseigenschaft "testcase.dir" als Arbeitsverzeichnis ersetzt:
<prop name="com.ibm.websphere.batch.workingDir" value="${testcase.dir}" />
- Java-Systemeigenschaft
- Im folgenden Beispiel wird die Java-Systemeigenschaft "user.dir" in der Prozessvariablen CLASSPATH ersetzt:
<prop name="CLASSPATH" value="${user.dir}/classes" />
- Prozessvariable
- Im folgenden Beispiel wird die Prozessvariable PATH im neuen Wert der Prozessvariablen
PATH ersetzt:
<prop name="PATH" value="/tmp:${env:PATH}" />
Wichtig: Substitutionseigenschaften werden als Java-Systemeigenschaften behandelt, wenn sie in der Liste der Java-Systemeigenschaften angezeigt werden. Andernfalls werden sie als xJCL-Substitutionseigenschaften behandelt. Die Prozessvariablensubstitution wird mit der Sondersyntax ${env:<Variablenname>} angegeben.