Exemple 3 : Le système rencontre des incidents avec un message d'incident
Pour préparer un message d'incident, configurez le système pour qu'il déplace ce message dans une destination d'exception et autorise le traitement des autres messages.
Avant de commencer
La destination sur laquelle le bean géré par message est en mode écoute doit utiliser une destination d'exception. Cette destination d'exception peut être la valeur par défaut du système ou une valeur configurée spécifiquement pour la destination.
- L'application d'entreprise qui contient le bean géré par message.
- Les ressources système externes dépendantes.
- Spécifiez la valeur 3 pour l'option Seuil d'échecs de messages séquentiels. Il s'agit du nombre maximal d'incidents de distribution de message séquentiels, au delà duquel le bean géré par message est arrêté. Cette propriété s'applique à des ensembles de messages.
- Spécifiez la valeur 5000 pour l'option Fréquence entre deux échecs de message, à savoir, le délai en millisecondes avant qu'un message d'incident ne puisse être distribué au bean géré par message. D'autres messages peuvent être distribués au cours de cette période, sauf si l'optionSeuil d'échecs de messages séquentiels et le nombre maximal d'accès concurrents ont la valeur 1.
- Spécifiez la valeur 5 pour l'option Nombre maximal de remises par message, à savoir, le nombre maximal de tentatives de traitement d'un message défectueuses, après quoi le message est transmis de sa destination prévue à la destination d'exception. Cette propriété s'applique à des messages spécifiques.
Pourquoi et quand exécuter cette tâche
In this scenario, the enterprise application is a continuously running system that uses a deployed MDB to access an external system resource.
Lorsqu'un message d'incident (msg1 dans ce scénario) est rencontré, il est replacé dans la file d'attente.
Instead of msg1 being made available to the MDB immediately, it is hidden for the Fréquence entre deux échecs de message retry delay of five seconds.
Le message suivant de la file d'attente (msg2) est traité par le bean géré par message. Ce message et les messages suivants aboutissent.
Lorsque le Fréquence entre deux échecs de message de msg1 arrive à expiration, msg1 n'est plus masqué et il est à nouveau traité. Il est replacé dans la file d'attente.
Le bean géré par message continue de traiter les messages suivants normalement, mais chaque fois que msg1 est traité, il est replacé dans la file d'attente.
Lorsque le nombre de fois que msg1 a été affiché, annulé, puis de nouveau masqué atteint la limite Nombre maximal de remises par message (cinq fois dans ce scénario), le message est transféré vers la destination d'exception configurée.