Sie können eine transaktionsorientierte Stapelanwendung als Job erstellen und
den Job in untergeordnete Jobs aufteilen, sodass die untergeordneten Jobs unabhängig voneinander und parallel ausgeführt werden können.
Sie verwenden Parallel Job Manager (PJM), um die transaktionsorientierten Stapeljobs zu übergeben und zu verwalten.
Vorbereitende Schritte
Hinweis zur Umstellung: Managementanwendungen für parallele Jobausführung, die für frühere Versionen von WebSphere Batch erstellt wurden, können in
WebSphere Application Server Version 8.5 unverändert ausgeführt werden.
Folgen Sie jedoch derselben Prozedur wie bei der Verwendung von zwei xJCl-Dateien, einer Datei
xd.spi.properties
und einer gemeinsam genutzten Bibliothek, die für zwei SPI-Implementierungen konfiguriert ist.
Wenn Sie die Anwendung unverändert verwenden, führen Sie die Schritte der folgenden Prozedur nicht aus:
trns
Hinweis zur Umstellung: Sie können Managementanwendungen für parallele Jobausführung
auf
WebSphere Application Server Version 8.5 migrieren. Fügen Sie die
API-Implementierungsklassen der Anwendungs-EAR-Datei hinzu. Schreiben Sie die xJCL gemäß der Beschreibung in der folgenden Prozedur um.
trns
Informationen zu diesem Vorgang
Sie entwickeln untergeordnete Jobs für Ihren Job, sodass die untergeordneten Jobs unabhängig voneinander und parallel ausgeführt werden können.
Legen Sie zuerst die Kriterien fest, anhand derer die Jobs in untergeordnete Jobs aufgeteilt werden.
Erstellen Sie anschließend eine einfache Stapelanwendung und definieren Sie die Teile der Anwendung als parallele Teile.
Danach erstellen Sie die xJCls für die untergeordneten Jobs, sodass Sie die Anwendung in einer anderen Prozedur implementieren können.
Vorgehensweise
- Kriterien festlegen, anhand derer die Jobs in untergeordnete Jobs aufgeteilt werden.
Teilen Sie die Jobs beispielsweise auf der Basis von Bankfilialen
in untergeordnete Jobs auf, sodass der untergeordnete Job für jede Filiale auf dem Standort der Filiale basiert.
Lassen Sie für eine bestimmte Bankfiliale den Saldo jedes Kontos am Ende des Tages vom untergeordneten Job auf der
Basis der Tagestransaktionen für jedes Konto berechnen.
- Einfache Stapelanwendung für die Verarbeitung der Informationen als Job erstellen.
- Teile der Anwendung als parallele Teile definieren.
Implementieren Sie die Parameter-API, um den Job für die Stapelanwendung in mehrere
untergeordnete Jobs aufzuteilen.
- Optional: Informationen zu einem aktiven untergeordneten Job erfassen.
Verwenden Sie die API "SubJobCollector", um die Informationen zu erfassen.
- Optional: Erfasste Informationen zum untergeordneten Job analysieren.
Verwenden Sie die API "SubJobAnalyzer", um die Informationen zu analysieren.
- xJCL erstellen.
Beginnen Sie mit der xJCL des Jobs, den Sie für die einfache Stapelanwendung erstellt haben.
- Geben Sie das Element "run" als untergeordnetes Element des Elements "job" an.
- Setzen Sie das Attribut "instances" im Element "run" auf multiple.
- Setzen Sie das JVM-Attribut (Java™ Virtual Machine) im Element "run" auf single oder auf multiple.
Verwenden Sie das
Attribut "single", wenn alle untergeordneten Jobs in derselben JVM ausgeführt werden sollen.
Verwenden Sie das Attribut "multiple", wenn die untergeordneten Jobs in einer beliebigen gültigen JVM ausgeführt werden sollen.
<run instances="multiple" jvm="multiple">
Sie können das Element "run" als untergeordnetes Element eines Abschnitts angeben.
In diesem Fall wird der Abschnitt als paralleler Job ausgeführt.
Der Inhalt der Abschnitts-xJCL wird verwendet, um eine xJCL für den untergeordneten Job mit einem einzigen Abschnitt zu generieren.
- Geben Sie ein Element "prop" als untergeordnetes Element des Elements "run" für jede
PJM-API an.
- Geben Sie die PJM-API im Attribut "name" an.
Die folgenden APIs sind für PJM gültig:
- com.ibm.websphere.batch.parallel.parameterizer
- com.ibm.websphere.batch.parallel.synchronization
- com.ibm.websphere.batch.parallel.subjobanalyzer
- com.ibm.websphere.batch.parallel.subjobcollector
- Setzen Sie das Attribut "value" auf einen API-Namen.
- Fügen Sie ein Element "prop" ein, um den Namen des untergeordneten Jobs anzugeben.
- Setzen Sie das Attribut "name" auf com.ibm.wsspi.batch.parallel.subjob.name.
- Setzen Sie das Attribut "value" auf den Namen des Jobs.
- Optional: Fügen Sie ein Element "prop" ein, um die Jobanzahl festzulegen.
- Setzen Sie das Attribut "name" auf parallel.jobcount.
- Setzen Sie das Attribut "value" auf einen Wert für die Jobanzahl.
- Geben Sie alle anderen Jobeigenschaften an.
<run instances="multiple" jvm="multiple">
<props>
<prop name="com.ibm.websphere.batch.parallel.parameterizer"
value="com.ibm.websphere.samples.spi.MailerParameterizer"/>
<prop name="com.ibm.websphere.batch.parallel.synchronization"
value="com.ibm.websphere.samples.spi.MailerTXSynchronization"/>
<prop name="com.ibm.websphere.batch.parallel.subjobanalyzer"
value="com.ibm.websphere.samples.spi.MailerSubJobAnalyzer"/>
<prop name="com.ibm.websphere.batch.parallel.subjobcollector"
value="com.ibm.websphere.samples.spi.MailerSubJobCollector"/>
<prop name="com.ibm.wsspi.batch.parallel.subjob.name"
value="MailerSampleSubJob" />
<!-- Die Anzahl zu übergebender paralleler untergeordneter Jobs -->
<prop name="parallel.jobcount" value="3" />
</props>
</run>
- Fügen Sie dieselben drei Abschnittseigenschaften in jedem Abschnitt der
xJCL hinzu.
<prop name="com.ibm.wsspi.batch.parallel.jobname" value="${parallel.jobname}" />
<prop name="com.ibm.wsspi.batch.parallel.logicalTXID" value="${logicalTXID}" />
<prop name="com.ibm.wsspi.batch.parallel.jobmanager" value="${parallel.jobmanager}" />
Ergebnisse
Sie haben einen Job mit untergeordneten Jobs erstellt, die unabhängig voneinander und parallel ausgeführt werden können.
Nächste Schritte
Implementieren Sie die Anwendung wie jede andere Stapelanwendung.