Befehlszeilenbasiertes Clientdienstprogramm "batchManager"

Das befehlszeilenbasierte Clientdienstprogramm "batchManager" stellt eine Befehlszeilenschnittstelle für die Verwaltung Ihrer Stapeljobs bereit, die in Liberty ausgeführt werden.

Das befehlszeilenbasierte Clientdienstprogramm "batchManager" interagiert mit dem Stapelmanager über die REST-API des Stapelmanagers. Um "batchManager" verwenden zu können, muss der Stapelmanager auf Ihrem Liberty-Server ausgeführt werden. Verwenden Sie die Funktion für Stapelverwaltung, um den Liberty-Stapelmanager zu installieren und zu aktivieren.

SSL-Konfiguration

Das befehlszeilenbasierte Clientdienstprogramm "batchManager" kommuniziert mit dem Stapelmanager über eine SSL-Verbindung. Um die SSL-Kommunikation mit einem Stapelmanager, der auf einem Liberty-Server ausgeführt wird, zu vereinfachen, muss das Dienstprogramm das SSL-Zertifikat des Liberty-Servers überprüfen können.

Wenn das SSL-Zertifikat von einer anerkannten Zertifizierungsstelle (CA, Certificate Authority) signiert wurde, kann das Dienstprogramm das Zertifikat der Zertifizierungsstelle überprüfen. Eine weitere Konfiguration ist nicht erforderlich.

Wenn das SSL-Zertifikat nicht von einer CA signiert wurde, müssen Sie das Dienstprogramm so konfigurieren, dass es das SSL-Zertifikat des Servers anerkennt, indem Sie eine der folgenden Aktionen ausführen:
  • Geben Sie die Option --trustSslCertificates an, mit der das Dienstprogramm so konfiguriert wird, dass es alle SSL-Zertifikate anerkennt.
  • Nehmen Sie das SSL-Zertifikat des Servers in den Truststore des Dienstprogramms auf.

Wenn Sie die Option --trustSslCertificates angeben, erkennt das Dienstprogramm alle SSL-Zertifikate an, die es empfängt. Es ist keine weitere Konfiguration notwendig.

Wenn Sie die Option auswählen, mit der das SSL-Zertifikat des Servers in den Truststore des Dienstprogramms aufgenommen wird, müssen Sie das Dienstprogramm konfigurieren, damit es den zugehörigen Truststore finden kann. Das Dienstprogramm ist eine eigenständige Java-Funktion des Typs "main". Sie konfigurieren SSL mit Systemeigenschaften wie javax.net.ssl.truststore.

 Wenn der Stapelmanager auf derselben Maschine ausgeführt wird wie das Dienstprogramm, können Sie mit dem Dienstprogramm direkt auf den Server-Keystore verweisen:
   $ export JVM_ARGS="-Djavax.net.ssl.trustStore=/path/to/server/keystore.jks"
   $ batchManager submit ...
Achtung: JVM-Argumente, wie z. B. Eigenschaften des Typs -D, werden an das befehlszeilenbasierte Clientdienstprogramm "batchManager" mit der Umgebungsvariablen JVM-ARGS übergeben.
Wenn Sie den Server-Keystore nicht direkt verwenden können, müssen Sie das Serverzertifikat aus dem Server-Keystore exportieren und in den Truststore des Clients importieren. Verwenden Sie das JDK-Dienstprogramm "keytool" für den Export und Import von Zertifikaten. Im folgenden Beispiel wird das Serverzertifikat in der Keystoredatei [server-dir]/resources/security/key.jks unter dem Alias default gespeichert und das Kennwort ist Liberty.
    $ keytool -export -alias default -file server.crt -keystore [server-dir]/resources/security/key.jks -storepass Liberty
    $ keytool -import -alias server_crt -file server.crt -keystore /path/to/truststore.jks -storepass passw0rd
Achtung: Der Befehl import erstellt die Datei truststore.jks, wenn sie nicht vorhanden ist.
    $ export JVM_ARGS="-Djavax.net.ssl.trustStore=/path/to/truststore.jks"
    $ batchManager submit ...

Befehle und Syntax

Das befehlszeilenbasierte Clientdienstprogramm "batchManager" stellt Befehle bereit, mit denen Sie Jobs übergeben, stoppen, erneut starten und den Status von Jobs überprüfen können.

Die allgemeine Syntax des Dienstprogramms lautet wie folgt:

$ batchManager [Befehl] [Optionen]

Geben Sie den folgenden Befehl ein, um eine Liste der verfügbaren Befehle anzuzeigen:

$ batchManager help

Geben Sie den folgenden Befehl ein, um die Beschreibung und Optionen für einen bestimmten Befehl anzuzeigen:

$ batchManager help [Befehl]

Das folgende Beispiel veranschaulicht die Übergabe eines Jobs und das Warten auf den Abschluss des Jobs:

  $ batchManager submit \
        --batchManager=<Host>:<Port>
        --user=[Berechtigungsnachweise für die Anmeldung beim Stapelmanager]
        --password=[Berechtigungsnachweise für die Anmeldung beim Stapelmanager]
        --applicationName=[Anwendungsname, der beim Packen der Stapelanwendung verwendet wird]
        --jobXMLName=[XML-Basisdateiname des Jobs im Anwendungsverzeichnis für Stapeljobs]
        --wait

jobParametersFile und jobPropertiesFile

Wenn Sie einen Stapeljob mit dem Clientdienstprogramm "batchManager" übergeben, unterstützen jobParametersFile und jobPropertiesFile die Verwendung mehrerer Dateien, die durch Kommas voneinander getrennt angegeben werden müssen. Dateien, die in der durch Kommas getrennte Liste weiter unten stehen, haben Vorrang vor Dateien, die in der Liste zuerst erscheinen. Das folgende Beispiel veranschaulicht die korrekte Verwendung der durch Kommas getrennten Liste.
jobParametersFile=Dateipfad1,Dateipfad2,Dateipfad3
jobPropertiesFile=Dateipfad1,Dateipfad2,Dateipfad3
--jobParametersFile=<Dateipfad1> überschreibt beispielsweise --jobParametersFile=<Dateipfad1>,<Dateipfad2> in der Steuerungseigenschaftendatei. Der generierte Parameter ist --jobParametersFile=<Dateipfad1>.
[17.0.0.3 und höher]

Steuerungseigenschaften und Jobparameter

Zum Erstellen einer Einzelgruppe von Jobparametern beginnt das Programm mit einer leeren Gruppe und lädt dann fortlaufend Eigenschaften aus unterschiedlichen Quellen. Das Programm führt anschließend die Eigenschaften in einem einzigen Satz zusammen. Nachdem das Programm alle Quellen gelesen und geladen hat, übergibt das Programm den Einzelsatz aus Eigenschaften als Jobparameter an die Jobübergabe.

Dieser Satz aus Eigenschaften wird durch Zusammenführung in dieser Reihenfolge erstellt. Wenn dieselbe Eigenschaft mit demselben Schlüssel geladen und mehr als einmal festgelegt wird, überschreibt der spätere Wert den früheren Wert. Die späteren Schritte in dieser Reihenfolge haben Vorrang vor den früheren Schritten.

  1. Wenn der Parameter --jobParametersFile nicht als Befehlszeilenparameter enthalten ist, treten die folgenden Aktionen in aufsteigender Reihenfolge auf:
    1. Die Inhalte der Dateien, die über die Steuerungseigenschaft --jobParametersFile referenziert werden, werden geladen und zusammengeführt. Diese Steuerungseigenschaft wird möglicherweise nur in einer einzigen Steuerungseigenschaftendatei angezeigt oder sie wird möglicherweise in mehr als einer Datei angezeigt, wenn die Eigenschaft überschrieben wurde.
    2. Die Jobparameter für die Steuerungseigenschaften werden geladen und zusammengeführt. Diese Eigenschaften sind in der Steuerungseigenschaftendatei wie folgt strukturiert: --jobParameter=key=value.
    3. Die Jobparameter für die Befehlszeile werden geladen und zusammengeführt.
  2. Wenn der Parameter --jobParametersFile nicht als Befehlszeilenparameter enthalten ist, treten die folgenden Aktionen in aufsteigender Reihenfolge auf:
    1. Die Inhalte der Dateien, die über die Steuerungseigenschaft --jobParametersFile referenziert werden, werden geladen und zusammengeführt. Diese Steuerungseigenschaft wird möglicherweise nur in einer einzigen Steuerungseigenschaftendatei angezeigt oder sie wird möglicherweise in mehr als einer Datei angezeigt, wenn die Eigenschaft überschrieben wurde.
    2. Die Jobparameter für die Steuerungseigenschaften werden geladen und zusammengeführt. Diese Eigenschaften sind in der Steuerungseigenschaftendatei wie folgt strukturiert: --jobParameter=key=value.
    3. Die Jobparameter für die Befehlszeile werden geladen und zusammengeführt.

Diese Struktur tritt auf, weil der --controlPropertiesFile-Parameter in der Rangfolge den Befehlszeilenargumenten untergeordnet ist. Die Ebene, auf der Sie den --jobParametersFile-Parameter angeben, bestimmt die Rangfolgenebene dieser Dateien.

Während das Programm jede Datei in der Reihenfolge liest und lädt, fasst das Programm die gefundenen Eigenschaften --jobParametersFile und --jobPropertiesFile in einer einzigen Eigenschaft zusammen. Jede Eigenschaft ist ein Alias der anderen. Eine Überschreibung mit einem Befehlszeilenargument oder einer Steuerungseigenschaft mit einem dieser Aliase ersetzt eine Instanz dieser beiden, wenn sie in einer früheren überschriebenen Steuerungseigenschaftendatei enthalten sind.

Anmerkung: Suchen Sie in der Javadoc-Informationsdatei java.util.Properties.load() nach Kommentierungsspezifikationen.

Befehlszeilenbasiertes Clientdienstprogramm "batchManager" unter z/OS mit einem SAF-Schlüsselring

Um den SAF-Schlüsselring (System Authorization Facility) Ihres Liberty-Servers mit dem befehlszeilenbasierten Clientdienstprogramm "batchManager" zu verwenden, müssen Sie die java.environment-Einstellungen festlegen. Außerdem müssen Sie eine Benutzer-ID festlegen, die im Aufruf des befehlszeilenbasierten Clientdienstprogramms "batchManager" angegeben wird, um den SAF-Schlüsselring zu lesen.

Die folgenden Befehle berechtigen den Benutzer, den SAF-Schlüsselring zu lesen.

Wichtig: Die ID_des_Schlüsselringeigners stimmt in der Regel mit der Benutzer-ID des Liberty-Servers überein.

PermitID_des_Schlüsselringeigners.Schlüsselringname.LST CLASS(RDATALIB)ID(Benutzer-ID)ACCESS(UPDATE)

SETROPTS RACLIST(RDATALIB) GENERIC(RDATALIB) REFRESH

Weitere Informationen finden Sie in der Veröffentlichung "z/OS Security Server RACF Command Language Reference" für WebSphere Application Server.

Das folgende Beispiel definiert die Umgebungsvariable JVM_ARGS.

export JVM_ARGS="-Djavax.net.ssl.trustStore=safkeyring://ID_des_Schlüsselringeigners/Schlüsselringname
-Djavax.net.ssl.trustStoreType=JCERACFKS -Djavax.net.ssl.keyStore=safkeyring://ID_des_Schlüsselringeigners/Schlüsselringname
-Djavax.net.ssl.keyStoreType=JCERACFKS -Dcom.ibm.ssl.keyStoreFileBased=false -Dcom.ibm.ssl.trustStoreFileBased=false
-Djava.protocol.handler.pkgs=com.ibm.crypto.provider -Djavax.net.ssl.keyStorePassword=password"
Achtung: javax.net.ssl.keyStorePassword ist eine erforderliche Eigenschaft, deren Wert ein Kennwort ist und die verwendet wird, um die Kopie der Schlüsselinformationen in der Java Virtual Machine zu entschlüsseln, während sie sich im Speicher befindet.

Rückgabecodes

Das befehlszeilenbasierte Clientdienstprogramm "batchManager" gibt die folgenden Rückkehrcodes aus:
Code Beschreibung
0 Die Task wurde normal beendet.
20 Ein erforderliches Argument wurde nicht angegeben.
21 Es wurde ein nicht erkanntes Argument angegeben.
22 Es wurde ein ungültiges Argument angegeben.
255 Es ist ein unbekannter Fehler aufgetreten.
Anmerkung: Wenn Sie das Argument --wait angeben, gibt das Dienstprogramm die folgenden Rückkehrcodes zum Status des Jobs aus, auf den Sie warten.
Code Beschreibung
33 Der Job wurde gestoppt.
34 Der Job wurde nicht erfolgreich ausgeführt.
35 Der Job wurde erfolgreich ausgeführt.
36 Der Job wurde abgebrochen.

Symbol das den Typ des Artikels anzeigt. Konzeptartikel

Dateiname: cwlp_jbatch_commandlineutil.html