Ejemplo 3: el sistema experimenta problemas con un mensaje de problema
Para preparar un mensaje de problema, configure el sistema para que mueva dicho mensaje a un destino de excepción y deje que los demás mensajes se proceses satisfactoriamente.
Antes de empezar
El destino en el que escucha el MDB debe utilizar un destino de excepción. Este destino de excepción puede ser el valor predeterminado del sistema o uno configurado específicamente para el destino.
- La aplicación empresarial que contiene el MDB.
- Los recursos del sistema externo dependientes.
- Establezca un valor de 3 para Umbral de mensaje fallido secuencial. Es el número máximo de errores secuenciales en la entrega de mensajes, tras el cual el MDB se detiene. Esta propiedad se aplica a los conjuntos de mensajes.
- Establezca un valor de 5000 para Retardo entre reintentos de mensaje fallido, es decir, el tiempo en milisegundos antes de que un mensaje que falla esté disponible para ser entregado al MDB. Durante este periodo, se pueden entregar otros mensajes, a menos que Umbral de mensaje fallido secuencial y el valor máximo de simultaneidad estén establecidos en 1.
- Establezca un valor de 5 para Entregas máximas fallidas por mensaje, es decir, el número máximo de intentos no satisfactorios para procesar un mensaje, tras el cual el mensaje se reenvía desde su destino previsto al destino de excepción. Esta propiedad se aplica a mensajes individuales.
Acerca de esta tarea
En este escenario, la aplicación empresarial es un sistema de ejecución continuada que utiliza un MDB desplegado para acceder a un recurso del sistema externo.
Cuando se detecta un mensaje con problemas (msg1 en este caso de ejemplo), se vuelve a colocar en la cola.
En lugar de hacer que msg1 esté disponible al MDB de forma inmediata, se oculta durante el retardo de intentos de Retardo entre reintentos de mensaje fallido de cinco segundos.
El MDB procesa el siguiente mensaje de la cola (msg2). Este mensaje y los mensajes siguientes se procesan satisfactoriamente.
Cuando caduca el Retardo entre reintentos de mensaje fallido para msg1, msg1 deja de estar oculto y se vuelve a procesar. Se vuelve a colocar en la cola una vez más.
El MDB continúa normalmente el proceso de los mensajes pero, cada vez que msg1 se procesa, se vuelve a colocar en la cola.
Cuando el número de veces que msg1 ha dejado de estar oculto, se ha retrotraído y se ha vuelto a ocultar alcanza el límite de Entregas máximas fallidas por mensaje (cinco veces en este caso de ejemplo), se mueve al destino de excepción configurado.