Prüfpunktalgorithmen

Die Grid-Endpunkte verwenden Prüfpunktalgorithmen, um zu bestimmen, wann globale Transaktionen, unter denen Stapelabschnitte aufgerufen werden, festgeschrieben werden sollen. Diese Algorithmen werden über die xJCL-Definition auf einen Stapeljob angewendet. Eigenschaften, die für Prüfpunktalgorithmen in xJCL angegeben sind, ermöglichen die Anpassung des Prüfpunktverhaltens, z. B. Zeitlimits für Transaktionen und Prüfpunktintervalle, an Stapelabschnitte. Das Produkt stellt einen zeitbasierten und einen satzbasierten Prüfpunktalgorithmus zur Verfügung und definiert eine Serviceprogrammierschnittstelle (SPI, Service Programming Interface) zum Erstellen weiterer angepasster Prüfpunktalgorithmen.

Bei jeder Iteration der Methode "processJobStep", die für einen Jobabschnitt ausgeführt wird, sendet der gemeinsame Stapelcontainer eine Rückfrage an den Prüfpunktalgorithmus, der auf diesen Schritt angewendet wurde, um festzustellen, ob sie die globale Transaktion festschreiben soll. Callback-Methoden für den Prüfpunktalgorithmus ermöglichen dem gemeinsamen Stapelcontainer, den Algorithmus zu informieren, wenn eine globale Transaktion festgeschrieben oder gestartet wurde. Auf diese Weise kann der Algorithmus den Lebenszyklus der globalen Transaktion überwachen. Bei jeder Iteration der Methode "processJobStep" ruft der gemeinsame Stapelcontainer die Callback-Methode "ShouldCheckpointBeExecuted" für den Algorithmus auf, um festzustellen, ob die Transaktion festgeschrieben werden soll. Der Algorithmus steuert mit dieser Methode das Prüfpunktintervall.

Lesen Sie im Referenzabschnitt des Information Center die Informationen zur Anwendungsprogrammierschnittstelle für Stapeljobs für die Serviceprogrammierschnittstelle des Prüfpunktalgorithmus, mit der angepasste Prüfpunktalgorithmen erstellt werden können. Der Klassenname ist "com.ibm.wsspi.batch.CheckpointPolicyAlgorithm".

Das Produkt unterstützt zwei Prüfpunktalgorithmen: den zeitbasierten Algorithmus und den datensatzbasierten Algorithmus. Beide Algorithmen werden in den folgenden Abschnitten erläutert.

Zeitbasierter Algorithmus

Der zeitbasierte Prüfpunktalgorithmus schreibt globale Transaktionen mit einem angegebenen Zeitintervall fest. Das folgende Beispiel deklariert einen zeitbasierten Algorithmus in xJCL:
<checkpoint-algorithm name="timebased">
     <classname>com.ibm.wsspi.batch.checkpointalgorithms.timebased</classname>
     <props>
           <prop name="interval" value="15" />
           <prop name="TransactionTimeOut" value="30" />
     </props>
</checkpoint-algorithm>

Die Werte für die Eigenschaften "interval" und "TransactionTimeOut" im obigen Beispiel sind in Sekunden ausgedrückt.

Satzbasierter Algorithmus

Der satzbasierte Prüfpunktalgorithmus schreibt globale Transaktionen bei einer bestimmten Anzahl von Iterationen der Methode "processJobStep" für einen Stapelabschnitt fest. Jeder Aufruf der Methode "processJobStep" wird als eine Iteration des Satzes behandelt. Die Methode "processJobStep" kann in jedem Aufruf mehrere Datensätze aus einem Stapeldatensatz abrufen. Bei diesem Prüfpunktalgorithmus entspricht jedoch ein Datensatz einem Aufruf der Methode "processJobStep".

Das folgende Beispiel deklariert einen datensatzbasierten Algorithmus in xJCL:
<checkpoint-algorithm name="recordbased">
     <classname>com.ibm.wsspi.batch.checkpointalgorithms.recordbased</classname>
     <props>
           <prop name="recordcount" value="1000" />
           <prop name="TransactionTimeOut" value="60" />
     </props>
</checkpoint-algorithm>

Die Einheit der Eigenschaft "TransactionTimeOut" im vorherigen Beispiel ist in Sekunden ausgedrückt.

Ist das Transaktionszeitlimit nicht in xJCL angegeben, werden ein Standardwert von 60 Sekunden und eine Standardsatzanzahl von 10000 verwendet.

Prüfpunktalgorithmen auf einen Stapeljobabschnitt anwenden

Prüfpunktalgorithmen werden über xJCL auf einen Stapeljob angewendet. Sie können mehrere Prüfpunktalgorithmen in xJCL deklarieren und auf jeden Stapelabschnitt einen anderen Algorithmus anwenden. Auf einen Stapelabschnitt kann jeweils nur ein Prüfpunktalgorithmus angewendet werden.

Das folgende Beispiel wendet Prüfpunktalgorithmen in xJCL an:

<job name="PostingsSampleEar">

<checkpoint-algorithm name="timebased">
     <classname>com.ibm.wsspi.batch.checkpointalgorithms.timebased</classname>	
     <props>
           <prop name="interval" value="15" />
           <prop name=" TransactionTimeOut" value="30" />
     </props>
</checkpoint-algorithm>

<checkpoint-algorithm name="recordbased">
     <classname>com.ibm.wsspi.batch.checkpointalgorithms.recordbased</classname>
     <props>
           <prop name="recordcount" value="1000" />
           <prop name="TransactionTimeOut" value="60" />
     </props>
</checkpoint-algorithm>

<job-step name="Step1">
     <checkpoint-algorithm-ref name="timebased" />
</job-step>

<job-step name="Step2">
     <checkpoint-algorithm-ref name="recordbased" />
</job-step>
</job>

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_xdbatchalg
Dateiname:cgrid_xdbatchalg.html