Error al procesar con un proveedor de Apache Kafka

Cuando los mensajes tienen errores durante el proceso en Kafka, puede volver a procesarlos o marcarlos para suprimirlos después de que caduquen de Kafka.

Error al procesar mensajes en colas secuenciales

Las colas secuenciales no utilizan una cola de errores porque solo hay un mensaje de error a la vez. Un mensaje de error evita que se procesen los mensajes detrás del mismo en la cola. Sin embargo, un error no evita que se añadan mensajes nuevo a la cola. Kafka retiene los mensajes procesados y no procesados en la cola, basándose en el tiempo de retención establecido en Kafka.

En Kafka, preste atención al tiempo de retención de Kafka . Por ejemplo, si lo establece en 48 horas, un mensaje va en error a última hora del viernes por la noche. Otros mensajes se amontonan detrás del mensaje de error. Si el mensaje de error no se gestiona hasta el lunes por la mañana, el mensaje de error y otros mensajes no procesados podrían caducar antes de que los mensajes reanudan el proceso.

Los mensajes erróneos y caducados en Kafka se pueden volver a procesar en la aplicación Nuevo proceso de mensajes.

Si los mensajes están en la cola pero no se están procesando, que sucede si la tarea cron no está activa, los mensajes pueden caducar. Puesto que los mensajes no se han procesado con un error, no están disponibles en la aplicación Nuevo proceso de mensajes y no se pueden recuperar.

Si tiene mensajes de error que no tiene intención de volver a procesar, marque los mensajes para su supresión en la aplicación Nuevo proceso de mensajes.

Error al procesar mensajes en colas continuas

Un mensaje que tiene un error en una cola continua se escribe al final de cola para que se pueda volver a procesar. El número de veces que se puede volver a procesar un mensaje con error se determina mediante el valor del campo Número máximo de reintentos para este sistema externo.

Para el proceso de errores de entrada o salida continuos, debe configurar una instancia de la tarea cron KAFKAERROR para esa cola continua. Esta tarea cron procesa los mensajes de la tabla maxinterror en Maximo® Application Suite.
Nota: Después de intentar el número máximo de reintentos, el mensaje de error se establece en el estado HOLD. La tarea cron KAFKAERROR la omite en favor del siguiente mensaje de la tabla de errores. Si desea arreglar el mensaje y volver a intentarlo, utilice la aplicación Nuevo proceso de mensajes para editar el mensaje y cambiar el estado del mensaje a RETRY para que la tarea cron KAFKAERROR lo procese en la siguiente iteración. Si ya no desea procesar el mensaje de error, marque el mensaje para suprimirlo en la aplicación Nuevo proceso de mensajes .

Configuración de un retardo de reentrega para colas continuas

Un administrador puede configurar un retardo de reentrega que está en vigor cuando se especifica un recuento de reintentos para una cola continua. Cuando se especifica un retardo de reentrega en la propiedad mxe.int.kafkaredeldelay , la tarea cron para la cola no reescribe un mensaje al final de la cola Kafka hasta después del tiempo de retardo.

Por ejemplo, si el retardo está establecido en 30 segundos, la tarea cron para la cola continua hace una pausa de 30 segundos antes de que vuelva a escribir el mensaje con errores al final de la cola. El retardo permite que otros mensajes se procesen en la cola, algunos de los cuales pueden contener objetos necesarios para procesar correctamente el mensaje que tenía errores. La desventaja de utilizar este mecanismo es que el retardo ralentiza el procesador porque retarda la tarea cron del proceso continuado.

Para implementar un retardo de reentrega, cree la propiedad mxe.int.kafkaredeldelay en la aplicación Propiedades del sistema y establezca un tiempo de retardo en segundos.