Un processus de longue durée couvre de multiples transactions. En cas d'échec d'une transaction lié à une défaillance de l'infrastructure, Business Flow Manager fournit une fonctionnalité permettant d'effectuer la reprise automatique à la suite de ces incidents.
Dans un processus interruptible, le composant Business Flow Manager envoie lui-même les messages de requête qui déclenchent la navigation. Pour chaque message de requête entrant, une nouvelle transaction est démarrée et le message de requête est transmis à Business Flow Manager en vue du traitement. Chaque transaction se compose des actions suivantes :
Cause | Réponse |
---|---|
Infrastructure indisponible | En mode de traitement normal, tous les messages restent disponibles pendant une durée déterminée jusqu'à ce que l'infrastructure soit de nouveau opérationnelle. Cet incident peut être causé par une défaillance de base de données, par exemple. |
Message endommagé | Après un nombre spécifié de nouvelles tentatives, le message est placé dans la file d'attente de stockage temporaire. A partir de la file d'attente de stockage temporaire, il peut également être replacé dans la file d'entrée pour que la transaction soit renouvelée. |
Si l'infrastructure est indisponible et que la file d'attente de conservation est saturée, le traitement des message passe du mode de traitement normal au mode veille. En mode veille, le traitement des messages est ralenti jusqu'à ce que l'infrastructure soit de nouveau disponible. Lorsque l'infrastructure devient disponible, le mode de traitement normal des messages est rétabli.
Lors du traitement normal, un message est traité comme suit :
En mode veille, le traitement d'un message fait l'objet de tentatives périodiques. Les messages dont le traitement échoue sont replacés dans la file d'attente entrante sans que le compteur de livraison ou le compteur de la file d'attente de conservation soit incrémenté. Dès que le traitement d'un message peut être effectué, le mode normal de fonctionnement est rétabli.
Le nombre maximal de nouvelles tentatives est le nombre maximal de transferts d'un message par la file d'attente de conservation avant qu'il ne soit placé dans la file d'attente de stockage temporaire.
Pour être placé dans la file d'attente de conservation, un message doit subir trois échecs de traitement.
Par exemple, si le nombre maximal de nouvelles tentatives est de 5, un message devra être acheminé cinq fois vers la file d'attente de conservation (il devra échouer 3 * 5 = 15 fois) avant que la dernière tentative ne soit lancée. Si la dernière tentative échoue deux nouvelles fois, le message est alors placé dans la file d'attente de stockage temporaire. Cela signifie qu'un message doit échouer (3*nombre maximal de nouvelles tentatives) + 2 fois avant d'être placé dans la file d'attente de stockage temporaire.
Dans une application dont les performances sont un critère décisif et s'exécutant dans une infrastructure fiable, le nombre maximal de nouvelles tentatives doit être faible : de un ou deux, par exemple. Si le nombre limite de nouvelles tentatives est défini sur zéro, l'envoi d'un message ayant échoué à plusieurs reprises a lieu trois fois, puis ce message est acheminé vers la file d'attente de stockage temporaire.
Ce paramètre de Business Flow Manager est spécifié dans la console d'administration. Cliquez sur Configuration, sous Business Integration, sélectionnez .
, ou si Business Process Choreographer est configuré sur un cluster. Dans l'ongletLe nombre maximal de messages de la file d'attente de conservation définit le nombre maximal de messages que peut contenir la file d'attente de conservation. Si la file d'attente de conservation est saturée, le système passe en mode veille. Afin que le système passe en mode veille dès qu'un message échoue, configurez la valeur sur zéro. Pour améliorer la tolérance aux échecs d'infrastructure de Business Flow Manager, augmentez cette valeur.
Cette propriété est spécifiée dans la console d'administration. Cliquez sur Configuration, sous Business Integration, sélectionnez .
, ou si Business Process Choreographer est configuré sur un cluster. Dans l'ongletL'administrateur peut replacer les messages des files d'attente de stockage temporaire ou de conservation dans la file d'attente interne. Cette opération peut être réalisée par le biais de la console d'administration, de scripts d'administration ou du gestionnaire d'événements ayant échoué.