Le service de reprise WebSphere Process Server capture des données sur les événements ayant échoué. Vous pouvez maintenant localiser, modifier, soumettre à nouveau ou supprimer les événements ayant échoué via le gestionnaire des événements ayant échoué.
Le service de reprise WebSphere Process Server gère les opérations ayant échoué entre les composants de l'architecture SCA (Service Component Architecture) et les événements JMS ayant échoué.
Evénements SCA ayant échoué
Dans un contexte
SCA, un événement est une demande ou une réponse reçue par une application de service.
Il peut provenir d'une source externe (comme un adaptateur
d'applications en entrée) ou d'un appel externe à un service Web. L'événement se compose d'une référence de la logique métier qu'il souhaite mettre en oeuvre et de ses données stockées dans un Service Data Object (un objet
métier).
Lorsqu'un élément est reçu, il est traité par la logique applicative appropriée.
Une seule unité d'exécution peut se transformer en plusieurs branches
(ou unités d'exécution) ; chaque branche est reliée au principal événement
appelé par le même contexte de session.
Si cette logique métier de l'une de ces branches ne peut pas s'exécuter
complètement à la suite d'une panne du système ou d'un composant, ou de
l'indisponibilité d'un composant, l'état de l'événement passe à échoué. En cas d'échec de plusieurs branches, un événement ayant échoué est créé pour chacune d'elles. Le service de reprise gère les types suivants d'événements SCA ayant échoué :
- Les échecs d'événement survenant lors d'un appel asynchrone d'une opération SCA.
- Les échecs d'événement provoqués par une exception d'exécution (en d'autres termes, toute exception non déclarée dans les méthodes utilisées par la logique métier)
Le service de reprise ne gère pas les échecs provenant d'appels synchrones.
Les événements ayant échoué sont généralement associés à des informations sur la source et la destination. La source et la destination sont basées sur le point d'échec (emplacement où l'appel échoue), quel que soit le type d'interaction. Prenons l'exemple suivant dans lequel un composant A appelle de manière asynchrone le composant B. Le message de requête est envoyé de A vers B et la réponse (rappel) de B vers A.
- Si l'exception se produit au cours de la requête initiale, le composant A est la source et le composant B, la destination, en ce qui concerne le gestionnaire des événements ayant échoué.
- Si l'exception se produit du cours de la réponse, le composant B est la source et le composant A, la destination, en ce qui concerne le gestionnaire des événements ayant échoué.
Ceci s'applique pour tous les appels asynchrones.
Le service de reprise envoie les interactions asynchrones SCA ayant échoué aux
destinations d'événements ayant échoué qui ont été créées sur le bus système SCA (SCA.SYSTEM.nom_cellule.Bus).
Les données d'événements ayant échoué sont stockées dans la base de données des événements ayant échoué (par défaut,
WPCRSDB) et deviennent disponibles pour les tâches d'administration dans l'interface gestionnaire des événements ayant échoué.
Evénements JMS ayant échoué
Le type de liaison et la configuration Java Message Service (JMS)
déterminent si un événement ayant échoué est généré et envoyé au gestionnaire d'événements ayant échoué.
Liaisons JMS
WebSphere Integration Developer fournit une propriété de liaison de reprise qui vous permet d'activer ou de désactiver la reprise pour
chaque liaison JMS, au moment de la création. Vous pouvez définir la propriété
recoveryMode sur l'une des valeurs suivantes :
bindingManaged |
Permet à la liaison de gérer la reprise des messages ayant échoué |
unmanaged |
S'appuie sur une reprise propre au transport pour les messages ayant échoué |
La reprise pour les liaisons JMS est activée par défaut. Lorsque cette fonction est activée, des événements JMS ayant échoué sont créés dans les cas suivants :
- le sélecteur de fonction échoue ;
- le sélecteur d'erreurs échoue ;
- le sélecteur d'erreurs renvoie le type d'erreur RuntimeException ;
- le gestionnaire d'erreurs échoue ;
- la liaison de données ou le gestionnaire de données échoue après une seule nouvelle tentative dans JMS.
En outre, un événement
SCA (Service Component Architecture) ayant échoué est créé lorsque l'exception
ServiceRuntimeException est émise dans un
composant cible de la liaison JMS après une seule nouvelle tentative dans JMS.
Ces échecs peuvent se produire lors
d'une communication sortante ou entrante. Lors d'une communication sortante, JMSImport envoie un message de demande et reçoit le message de
réponse ; un événement ayant échoué est généré si la liaison d'importation JMS détecte un problème lors du traitement de la réponse du
service. Lors d'une communication entrante, la séquence d'événements est la suivante :
- JMSExport reçoit le message de requête.
- JMSExport appelle le composant SCA.
- Le composant SCA renvoie une réponse à JMSExport.
- JMSExport envoie un message de réponse.
Un événement ayant échoué est généré si la liaison d'exportation JMS détecte un
problème lors du traitement de la demande de service.
Le service de reprise capture le message JMS et le stocke dans une table de reprise dans la base de données commune. En outre, il capture et stocke le nom du module, le nom du composant, le nom de l'opération, l'heure d'échec, les détails de l'exception et
les propriétés JMS de l'événement ayant échoué. Pour gérer les événements JMS ayant échoué, vous pouvez utiliser le gestionnaire des événements ayant échoué ou vous pouvez utiliser un programme personnalisé.
Vous ne pouvez désactiver la reprise que de façon explicite dans WebSphere Integration Developer en définissant la propriété
recoveryMode sur
unmanaged.
Remarque : En l'absence de la propriété recoveryMode (pour les applications de versions antérieures), la capacité de reprise est
considérée comme activée.
Lorsque la reprise est désactivée, le message ayant échoué est annulé pour revenir à sa destination
d'origine, puis est réessayé. Le système ne crée pas d'événement ayant échoué.
Liaisons JMS WebSphere MQ et liaisons JMS génériques
Les liaisons JMS WebSphere MQ et les liaisons JMS génériques ne traitent pas les échecs de la même manière que les liaisons JMS. Les
problèmes survenant lors du traitement des demandes et des réponses ne génèrent pas d'événement JMS ayant échoué. Ils génèrent un événement
SCA ayant échoué si les deux conditions suivantes sont remplies :
- Le système de messagerie sous-jacent est configuré pour relivrer automatiquement un message ayant échoué.
- L'échec se produit dans le composant SCA cible de la liaison d'exportation, et non dans la liaison elle-même.
Lorsque ces deux
conditions sont vraies, le système de reprise génère un événement SCA ayant échoué que vous pouvez gérer dans le gestionnaire d'événements
ayant échoué.
Dans toutes les autres situations, le message ayant échoué est annulé pour revenir à sa destination
d'origine, où il est traité selon la configuration du système de messagerie. Aucun événement ayant échoué n'est créé.
Comment les événements ayant échoué sont-ils gérés ?
Un administrateur utilise le gestionnaire des événements ayant échoué pour les parcourir et les gérer.
Parmi les tâches courantes de gestion des événements ayant échoué, figurent
:
- La localisation de tous les événements
ayant échoué
- La recherche des événements ayant échoué d'après des critères spécifiques
- L'édition de données d'un événement ayant échoué
- La nouvelle soumission des événements ayant échoué
- La suppression des événements
ayant échoué
Pour accéder au gestionnaire des événements ayant échoué, cliquez sur
.