xJCL-Elemente

Jobs werden mit dem XML-Dialekt (Extensible Markup Language) mit dem Namen xJCL (XML Job Control Language) definiert. Dieser Dialekt verfügt über Anweisungen, um alle erforderlichen Informationen für rechenintensive und Stapeljobs zu formulieren, obwohl einige Elemente von xJCL nur auf rechenintensive oder Stapeljobs anwendbar sind. Weitere Informationen zu xJCL können Sie der mit den Beispielanwendungen bereitgestellten xJCL, der xJCL-Tabelle und dem Schemadokument für xJCL XSD entnehmen. Die xJCL-Definition des Jobs gehört nicht zur Stapelanwendung. Sie wird gesondert erstellt und zur Ausführung an den Job-Scheduler übergeben. Der Job-Scheduler verwendet Informationen aus der xJCL, um zu bestimmen, wo und wann der Job ausgeführt wird.

xJCL-Elemente

Die folgende Tabelle enthält eine Zusammenfassung der xJCL-Elemente.

Tabelle 1. xJCL-Elemente. In dieser Tabelle sind xJCL-Elemente aufgelistet. Für jedes xJCL-Element wird angegeben, ob es für rechenintensive Java EE- oder Java EE-Stapeljobs gilt. Außerdem sind in dieser Tabelle die Unterelemente, Attribute und Beschreibungen für jedes xJCL-Element aufgelistet.
Element Rechenintensiver Java-EE-Job Java-EE-Stapeljob Unterelement Attribute Beschreibung
Job Ja Ja     Definiert die Beschreibung eines Stapeljobs.
Job Ja Ja   name Name des Jobs. Dieser Name muss mit dem Namen der Stapelanwendung übereinstimmen, es sei denn, der Standardanwendungsname ist angegeben.
Job Ja Ja   accounting Optionales Informationsattribut für die Abrechnung.
Job Ja Ja   class Optionales Jobklassenattribut, das die Jobklasse angibt, unter der der Job ausgeführt wird.
Job Ja Ja   default-application-name Der Anwendungsname, der verwendet werden soll, wenn kein Attribut "application-name" für den Jobabschnitt gefunden wird.

Der zu verwendende Anwendungsname. Für OSGi-Stapelanwendungen geben Sie den Namen im Format osgi:<EBA-Name>:<Version> an.

Job Ja Ja jndi-name   Der JNDI-Name, der der Stateless-Session-Bean des Job-Controller zugeordnet wird, wenn die Stapelanwendung im Produkt implementiert wird.
Job Ja Ja job-scheduling criteria required-capability Die erforderliche Kapazität des Jobs, die auf einem Endpunkt definiert sein muss, damit der Job diesem Endpunkt zugeteilt werden kann.
Job Ja Ja step-scheduling criteria Siehe Element "step-scheduling-criteria".  
Job Nein Ja checkpoint algorithm Siehe Element "checkpoint-algorithm".  
Job Nein Ja results-algorithm Siehe Element "results-algorithms"  
Job Ja Ja substitution-props++ Siehe Element "prop". Die erforderliche Kapazität des Jobs, die auf einem Endpunkt definiert sein muss, damit der Job diesem Endpunkt zugeteilt werden kann.
job-step Ja* Ja   name Optionaler Name des Abschnitts. Diese Information wird bei Betriebsbefehlen zurückgegeben.
job-step Ja* Ja   application-name Optionaler Name der vom Abschnitt ausgeführten Anwendung. Der Attributname wird verwendet, wenn das Element "application-name" und das Attribut "default-application-name" auf Jobebene nicht definiert sind.
job-step Nein Ja step-scheduling Siehe Element "step-scheduling". Ermöglicht eine bedingte, auf Rückkehrcodes von Abschnitten basierende Logik, die bestimmt, ob der Stapelabschnitt aufgerufen wird.
job-step Ja Ja classname   Vollständig qualifizierter Name einer Klasse, die den rechenintensiven Job implementiert.
job-step Ja Nein checkpoint-algorithm-ref   Gibt den Prüfpunktalgorithmus an, der für den Abschnitt des Stapeljobs verwendet werden soll.
job-step Nein Ja results-ref Siehe Element "results-ref". Gibt den für die bedingte Ausführung des Stapeljobabschnitts zu verwendenden Ergebnisalgorithmus an.
job-step Nein Ja batch-data-streams Siehe Element "batch-data-streams". Das Element A ist eine Folge von bds-Elementen. Jedes bds-Element ist die Konfigurationsinformation, die zum Erstellen eines Stapeldatenstroms erforderlich ist.
job-step Ja Ja props Siehe Element "props". Name-Wert-Eigenschaften, die an den Abschnitt übergeben werden.
job-step Nein Nein exec Siehe Element "exec". Gibt die ausführbare Datei an, die diesem Jobabschnitt zugeordnet ist.
job-step Nein Nein env-entries Siehe Element "env-entries". Gibt die Umgebungseigenschaften an, die dem Jobabschnitt zugeordnet sind.
prop Ja Ja     Eine einzelne Instanz eines Name/Wert-Paares, die als Eigenschaft verwendet wird.
prop Ja Ja   name Der Name der Eigenschaft.
prop Ja Ja   value Der Wert der Eigenschaft.
props Ja Ja prop Siehe Element "prop".  
env-entries Nein Nein     Eine Folge von prop-Elementen, mit denen Name/Wert-Paare als Eigenschaften an Abschnitte, bds-Elemente, Prüfpunktalgorithmen und Ergebnisalgorithmen übergeben werden.
env-entries Nein Nein env-var Siehe Element "env-var".  
exec Nein Nein     Eine Folge von prop-Elementen, mit denen Name/Wert-Paare als Eigenschaften an Abschnitte, bds-Elemente, Prüfpunktalgorithmen und Ergebnisalgorithmen übergeben werden.
exec Nein Nein   executable Der Name der ausführbaren Datei, die dem Jobabschnitt zugeordnet ist.
exec Nein Nein arg Siehe Element "line".  
line Nein Nein     Befehlszeilenparameter, die an die ausführbare Datei für den Jobabschnitt übergeben werden.
bds Nein Ja     Ein bds-Element stellt eine einzelne Instanz einer Stapeldatenstromimplementierung dar, die dem Stapeljob zur Verfügung gestellt wird.
bds Nein Ja logical-name   Eine Zeichenfolge, die in den Stapelabschnitt eingebettet ist, der sie verwendet, um die Stapellaufzeitumgebung nach einer bestimmten Instanz eines Stapeldatenstroms abzufragen.
bds Nein Ja impl-class   Vollständig qualifizierter Klassenname der Implementierungsklasse für den Stapeldatenstrom.
bds Nein Ja props Siehe Element "props". Eine Liste mit Eigenschaften, die an die Implementierungsklasse des Stapeldatenstroms übergeben wird.
batch-data-streams Nein Ja     Eine Folge von bds-Elementen.
batch-data-streams Nein Ja bds Siehe Element "bds".  
step-scheduling Nein Ja     Wird auf job-step-Elemente angewendet, um basierend auf bedingten Abläufen für einen Stapeljob Rückkehrcodes zu erstellen. Vergleicht die Werte von Rückkehrcodes, die für den Stapeljob definiert sind, um zu entscheiden, ob ein Abschnitt während der Verarbeitung eines Stapeljobs aufgerufen werden soll oder nicht. Die Werte der Rückkehrcodes werden mit dem Element returncode-expression verglichen.
step-scheduling Nein Ja returncode-expression Siehe "returncode-expression". Der auszuwertende Ausdruck für den Rückkehrcode.
step-scheduling Nein Ja   Bedingung Wenn das step-scheduling-Element mehrere returncode-expression-Elemente enthält, können bedingte Operatoren auf diese Elemente angewendet werden. Folgende bedingte Operatoren werden unterstützt: AND, OR.
returncode-expression Nein Ja     Das Element returncode-expression wird in step-scheduling-Elementen verwendet, um basierend auf den Rückkehrcodes anderer Jobabschnitte zu entscheiden, ob ein bestimmter Abschnitt eines Stapeljobs ausgeführt wird.
returncode-expression Nein Ja   Abschnitt Der Name des Abschnitts, dessen Rückkehrcode in diesem Ausdruck verglichen werden soll.
returncode-expression Nein Ja   operator Der Operator, der für den Ausdruck des Rückkehrcodes verwendet werden soll. Folgende Operatoren werden unterstützt: eq (equals = gleich), lt (less than = kleiner als), gt (greater than = größer als), le (less than or equal to = kleiner-gleich), ge (greater than or equal to = größer-gleich).
returncode-expression Nein Ja   value Der Wert, mit dem der Rückkehrcode verglichen werden soll.
step-scheduling-criteria Nein Ja     Beschreibt die Folge, in der die Jobabschnitte verarbeitet werden. Derzeit wird nur die sequenzielle Planung unterstützt, z. B. werden die Abschnitte in der Reihenfolge aufgerufen, in der sie in der xJCL erscheinen.
step-scheduling-criteria Nein Ja scheduling-mode   Die Reihenfolge, in der Abschnitte aufgerufen werden. Z. Zt. ist nur der Wert sequential (Sequenziell) möglich.
checkpoint-algorithm Nein Ja     Deklariert einen Prüfpunktalgorithmus, der für einen Stapeljobabschnitt verwendet werden kann.
checkpoint-algorithm Nein Ja   name Der Name des Algorithmus.
checkpoint-algorithm Nein Ja classname   Die Klasse, die diesen Algorithmus implementiert.
checkpoint-algorithm Nein Ja props Siehe Element "props". Eine Folge von prop-Elementen für den Prüfpunktalgorithmus.
checkpoint-algorithm-ref Nein Ja     Eine Referenz auf ein checkpoint-algorithm-Element.
checkpoint-algorithm-ref Nein Ja   name Name des Prüfpunktalgorithmus, auf den Sie verweisen.
checkpoint-algorithm-ref Nein Ja props Siehe Element "props". Eine Folge von prop-Elementen für den Prüfpunktalgorithmus.

++ Das xJCL-Element substitution-props wird im Folgenden beschrieben.

xJCL-Element substitution-props

Die Job-JCL kann Symbolvariablen enthalten. Eine Symbolvariable ist ein Ausdruck im Format ${variable-name} außerhalb eines Kommentars in einem ansonsten korrekt formatierten Dokument. Beispiel:
<checkpoint-algorithm-ref name="${checkpoint}" />
Das xJCL-Element substitution-props definiert einen Standardnamen und Wertepaare für Symbolvariablen. Im Folgenden sehen Sie ein Beispiel für das Element substitution-props aus einem Dokument postingSampleXJCL.xml:
<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>

Die Substitution von Symbolvariablen erfolgt zur Laufzeit. Zur Laufzeit wird die Zeichenfolge ${variable-name} bei der Übergabe der xJCL zur Ausführung durch den Wert der Eigenschaft ersetzt. Unter Verwendung der Eigenschaften aus dem vorherigen Beispiel wird die Zeichenfolge ${checkpoint} durch die Zeichenfolge "time-based" ersetzt, bevor der Job übergeben wird.

Symbolvariablen können indirekt sein. Der Beispielausdruck "name=FILENAME value=${${filename}}", der mit dem Name/Wert-Paar "filename=postingsDataStream" verwendet wird, liefert dasselbe Ergebnis wie der Ausdruck "name=FILENAME value=${postingsDataStream}".

Symbolvariablen können verbunden werden. Beispiel: name=postingsDataStream value=${was.install.root}${file.separator}temp${file.separator}postings.

Die Name/Wert-Paare müssen nicht im Element substitution-props des Jobdokuments definiert sein. Die props-Name/Wert-Paare, die im Element substitution-props definiert sind, sind Standardwerte für benannte Variablen. Sofern sie nicht im Element substitution-props definiert sind, müssen Name/Wert-Paare entweder über die APIs des Job-Schedulers übergeben werden, wenn der Job übergeben wird, oder in Systemeigenschaften der JVM definiert sein. Jede Symbolvariable, die im Hauptteil eines Jobdokuments definiert ist, muss aufgelöst werden, damit die xJCL als gültige xJCL betrachtet wird. Jedes Name/-Wert-Paar, das im Jobdokument definiert ist, muss in eine Symbolvariable aufgelöst werden, die im Hauptteil der xJCL enthalten ist, damit die xJCL als gültige xJCL betrachtet wird.

Wenn sowohl Name/Wert-Paare im xJCL-Dokument definiert sind als auch Name/Wert-Paare bei der Jobübergabe an die APIs des Job-Schedulers übergeben werden, überschreiben die Name/Wert-Paare, die über die APIs des Job-Schedulers übergeben werden, die im xJCL-Dokument definierten Standardwerte. Wenn keine Name/Wert-Paare über die APIs des Job-Schedulers übergeben werden und auch keine Standardwerte im xJCL-Dokument definiert sind, müssen Name/Wert-Paare für die Symbolvariablen in den Systemeigenschaften der JVM definiert werden, damit die xJCL als gültige xJCL betrachtet wird.

Symbolische Variablen werden vom Job-Scheduler vor der Jobübergabe aufgelöst. Eine Ausnahme bilden die folgenden Sondervariablen, die auf dem Grid-Endpunkt aufgelöst werden. Die folgenden Sondervariablen müssen alle als JVM-Systemeigenschaften definiert sein. Es handelt sind um die folgenden Variablen:
  • ${was.install.root}
  • ${user.install.root}
  • ${agent.home}

Symbol, das den Typ des Artikels anzeigt. Konzeptartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cgrid_xdbatchjcl
Dateiname:cgrid_xdbatchjcl.html