WebSphere Extended Deployment, Version 6.0.x     Betriebssysteme: AIX, HP-UX, Linux, Solaris, Windows, z/OS

Prüfpunktalgorithmen

Die Ausführungsumgebung für lange Laufzeit (Long-Running Execution Environment) verwendet 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. Merkmale, die für Prüfpunktalgorithmen in xJCL angegeben sind, ermöglichen die Anpassung des Prüfpunktverhaltens, z. B. Zeitlimits für Transaktionen und Prüfpunktintervallen, an Stapelabschnitte. WebSphere Extended Deployment stellt einen zeitbasierten und einen satzbasierten Prüfpunktalgorithmus zur Verfügung und definiert ein Service Provider Interface (SPI) zum Erstellen weiterer benutzerdefinierter Prüfpunktalgorithmen.

Bei jeder Iteration der Methode processJobStep, die für einen Jobabschnitt ausgeführt wird, tätigt die LREE 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 der LREE, 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 die LREE die Callback-Methode ShouldCheckpointBeExecuted für den Algorithmus auf, um festzustellen, ob die Transaktion festgeschrieben werden soll und der Algorithmus das Prüfpunktintervall über diese Methode steuern soll.

Lesen Sie die Informationen zur Stapel-API für das Prüfpunktalgorithmus-SPI, mit dem benutzerdefinierte Prüfpunktalgorithmen erstellt werden können, im Abschnitt "Referenzen" des Infocenter. Der Klassenname lautet com.ibm.wsspi.batch.CheckpointPolicyAlgorithm.

Die Prüfpunktalgorithmen werden mit diesem Produkt geliefert: der zeitbasierte Algorithmus und der satzbasierte 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 zeigt, wie ein zeitbasierter Algorithmus in xJCL deklariert wird:
<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 Merkmale "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. Beachten Sie, dass processJobStep bei jedem Aufruf mehrere Sätze aus einem Batch-Datenstrom abrufen kann, im Falle dieses Prüfpunktalgorithmus entspricht ein Satz einem Aufruf von processJobStep.

Das folgende Beispiel zeigt, wie ein satzbasierter Algorithmus in xJCL deklariert wird:
<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 des Merkmals 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. In xJCL können mehrere Prüfpunktalgorithmen deklariert werden; auf jeden Stapeljob kann ein anderer Prüfpunktalgorithmus angewendet werden. Auf einen Stapelabschnitt kann höchstens ein Prüfpunktalgorithmus angewendet werden.

Das folgende Beispiel zeigt, wie Prüfpunktalgorithmen in xJCL deklariert werden:

<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>



Related concepts
Stapelprogrammiermodell

Konzeptartikel    

Nutzungsbedingungen | Feedback Letzte Aktualisierung: Mar 23, 2006 9:54:23 AM EST
http://publib.boulder.ibm.com/infocenter/wxdinfo/v6r0/index.jsp?topic=?topic=/com.ibm.websphere.xd.doc/info/scheduler/cxdbatchalg.html

© Copyright IBM 2005, 2006. Alle Rechte vorbehalten.
Dieses Information Center beruht auf der Eclipse-Technologie. (http://www.eclipse.org)