Oí hablar del Banco de Mensajes (Message Bank) cuando comenzamos a rediseñar una producción de Health Connect para que se ejecutara en contenedores en la nube. Como habría varios contenedores de IRIS, se nos indicó que utilizáramos el Banco de Mensajes como un sitio único para ver los mensajes y registros de todos los contenedores. ¿Cómo funciona Message Bank? Añadí la operación del Banco de Mensajes a nuestra Producción de Interoperabilidad. Envía automáticamente mensajes y registros de eventos al Banco de Mensajes. **Reenvío de mensajes** El Banco de Mensajes ofrece una interfaz para que el usuario del portal reenvíe mensajes desde el portal del Banco de Mensajes. Pensé que sería aún mejor si pudiéramos hacer que el Banco de Mensajes reenvíe automáticamente los mensajes según sea necesario. Escribí código para buscar mensajes que no alcanzaron el estado Completo dentro del límite de tiempo predefinido y reenviarlos.

 

**Retos** Ejecutamos nuestros contenedores IRIS como tareas de AWS Elastic Container Service Fargate. Fargate tiene la ventaja de que no necesitamos configurar ni mantener servidores para ejecutar nuestros contenedores. Cada vez que se inicia un contenedor, comienza con una nueva dirección IP. Cuando el contenedor del Banco de Mensajes comienza con una nueva dirección IP, necesitábamos actualizar la configuración de la operación del Banco de Mensajes en los contenedores de nuestras aplicaciones.

 

**Solución** Añadí la rutina ZSTU en el contenedor del Banco de Mensajes. Escribe un archivo en Elastic File System, donde los contenedores de aplicaciones pueden leer la dirección IP del Banco de Mensajes y configurar los parámetros de operación del Banco de Mensajes cuando empieza la producción.

 

Errores

Observamos errores cuando un contenedor se cerró antes de enviar ningún mensaje al Banco de Mensajes. Nuestra producción envía registros al Banco de Mensajes al inicio y obtuvimos errores de ID no únicos cuando otro contenedor comenzó con la misma dirección IP que el contenedor que envió registros pero no mensajes.   **Resolución** El código para resolver los errores del Banco de Mensajes se puede ver aquí:

messagebank/TCPService.cls at master · oliverwilms/messagebank · GitHub