Algorithmes de point de contrôle

Les noeuds finaux de grille utilisent des algorithmes de point de contrôle pour déterminer quand valider les transactions globales au cours desquelles les étapes d'un travail par lots sont appelées. Ces algorithmes sont appliqués à un travail par lots via la définition xJCL (XML Job Control Language). Les propriétés indiquées pour ces algorithmes dans la définition xJCL permettent de personnaliser le comportement des points de contrôle, tel que le délai d'expiration des transactions et les intervalles des points de contrôle, pour les étapes de traitement par lots. Le produit fournit un algorithme de point de contrôle périodique (à base d'intervalle de temps) et un autre algorithme fondé sur le nombre d'enregistrements. Il définit également une interface de fournisseur de service (SPI) qui permet de construire d'autres algorithmes de point de contrôle personnalisés.

A chaque itération de la méthode processJobStep sur une étape de travail par lots, le conteneur de lots commun consulte l'algorithme de point de contrôle appliqué à cette étape pour déterminer s'il doit valider la transaction globale. Les méthodes de rappel des algorithmes de point de contrôle permettant au conteneur de lots commun d'informer ces algorithmes qu'une transaction globale est validée ou à commencé. Ce mécanisme permet à l'algorithme de suivre le cycle de vie de la transaction globale. A chaque itération de la méthode processJobStep, le conteneur de lots commun appelle la méthode de rappel ShouldCheckpointBeExecuted sur l'algorithme pour déterminer si la transaction est validée. L'algorithme contrôle l'intervalle de point de contrôle via cette méthode.

L'interface SPI permettant de créer des algorithmes de point de contrôle personnalisés est décrite dans la section Référence du centre de documentation. Son nom de classe est com.ibm.wsspi.batch.CheckpointPolicyAlgorithm.

Le produit fournit deux algorithmes de point de contrôle : l'un d'eux est de type périodique (à base d'intervalle de temps) et l'autre est fondé sur le nombre d'enregistrements. Ces deux algorithmes sont décrits dans les sections ci-après.

Algorithme de point de contrôle périodique

L'algorithme de point de contrôle périodique valide les transactions globales suivant un intervalle de temps spécifié. L'exemple suivant déclare un algorithme périodique dans la définition 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>

Les propriétés interval et TransactionTimeOut de l'exemple précédent sont exprimées en secondes.

Algorithme de point de contrôle fondé sur le nombre d'enregistrements

Cet algorithme de point de contrôle valide les transactions globales lorsque le nombre spécifié d'itérations de la méthode processJobStep est atteint. Chaque appel à la méthode processJobStep est traité comme une itération à travers un enregistrement. A chaque appel, la méthode processJobStep peut extraire plusieurs enregistrements d'un flux de données par lots (BDS). Cependant, pour cet algorithme de point de contrôle, un enregistrement équivaut à un seul appel à la méthode processJobStep.

L'exemple suivant déclare un algorithme fondé sur le nombre d'enregistrements dans la définition 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>

Dans l'exemple précédent, la propriété TransactionTimeOut est exprimée en secondes.

A défaut de spécification explicite dans la définition xJCL, le délai d'expiration des transactions est de 60 secondes et le nombre d'enregistrements est de 10000.

Application d'un algorithme de point de contrôle à une étape par lots

Les algorithmes de point de contrôle sont appliqués à un travail par lots via la définition xJCL. Vous pouvez déclarer plusieurs algorithmes de point de contrôle dans la définition xJCL et vous pouvez appliquer un algorithme différent à chaque étape du travail. Vous ne pouvez pas appliquer plus d'un algorithme de point de contrôle à une même étape.

L'exemple suivant applique des algorithmes de point de contrôle dans la définition xJCL :

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

Icône indiquant le type de rubrique Rubrique de concept



Icône d'horodatage Dernière mise à jour: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cgrid_xdbatchalg
Nom du fichier : cgrid_xdbatchalg.html