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.
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
<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>
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.
- ${was.install.root}
- ${user.install.root}
- ${agent.home}