L'environnement d'exécution LREE (Long-Running Execution Environnement) utilise des algorithmes de point de contrôle pour déterminer quand valider les transactions globales au cours desquelles les étapes de la procédure par lots sont appelées. Ces algorithmes sont appliqués à un travail par lots via la définition xJCL. 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. WebSphere Extended Deployment fournit des algorithme de point de contrôle fondé sur les dates et les enregistrements et définit une interface SPI pour générer d'autres algorithmes de point de contrôle personnalisés.
A chaque itération d'une étape par lots de la méthode processJobStep, l'environnement d'exécution LREE vérifie l'algorithme de point de contrôle appliqué à l'étape pour déterminer s'il doit valider la transaction globale. Les méthodes de rappel associées aux algorithmes de point de contrôle permettent à l'environnement d'exécution LREE d'indiquer à l'algorithme la validation ou le lancement d'une transaction. 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, l'environnement d'exécution LREE lance la méthode de rappel ShouldCheckpointBeExecuted sur l'algorithme pour déterminer si la transaction doit être validée. C'est par l'intermédiaire de cette méthode que l'algorithme contrôle l'intervalle du point de contrôle.
Reportez-vous à l'API de traitement par lots de l'interface SPI du point de contrôle dans la section Référence du centre de documentation pour identifier l'interface SPI disponible pour créer des algorithmes de point de contrôle personnalisé. Le nom de classe est com.ibm.wsspi.batch.CheckpointPolicyAlgorithm.
Deux algorithmes de point de contrôle sont fournis avec ce produit : L'algorithme fondé sur les dates et l'algorithme fondé sur les enregistrements. Ces deux algorithmes sont décrits dans les sections ci-après.
<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 unités de l'intervalle et les propriétés TransactionTimeOut de l'exemple précédent sont exprimées en secondes.
L'algorithme de point de contrôle par enregistrement valide les transactions globales en fonction du nombre d'itérations de la méthode processJobStep de l'étape par lots. Chaque appel à la méthode processJobStep est traité comme une itération appliquée à un enregistrement. La méthode processJobStep peut extraire plusieurs enregistrements à chaque appel mais cet algorithme considère qu'un enregistrement correspond à un seul appel à la méthode processJobStep.
<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, l'unité de la propriété TransactionTimeOut est exprimée en secondes.
Si cette valeur n'est pas définie dans le document xJCL, le délai d'expiration des transactions par défaut est 60 secondes et le nombre d'enregistrements par défaut est 10000.
Les algorithmes de point de contrôle sont appliqués à un travail par lots via la définition xJCL. Plusieurs algorithmes de point de contrôle peuvent être déclarés dans la définition xJCL et un algorithme différent peut être appliqué à chaque étape par lots. Un seul algorithme de point de contrôle peut être appliqué à une étape par lots.
L'exemple suivant indique comment appliquer des algorithmes de point de contrôle dans le document 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>
Related concepts
Modèle de programmation des applications par lots