Integración OpenTable (Resolución OutOfMemory)
Esta configuración es mandatoria para implementaciones de Xetux POS que utilicen la integración activa con OpenTable. El procedimiento aborda el colapso del servicio provocado por el agotamiento de la memoria Heap de Java.
Análisis del Problema
Síntomas
- El servicio de Apache Tomcat (Xetux) deja de responder aproximadamente cada 24 horas.
- La aplicación se "congela" y no procesa peticiones en los puertos asignados, a pesar de figurar como "En ejecución" en el Administrador de Tareas.
- Se requiere un reinicio manual diario para restaurar la operatividad.
Causa Raíz
El uso de Java 21, sumado a la persistencia de hilos de ejecución en segundo plano para la sincronización con OpenTable, genera una fuga de memoria (Memory Leak). El límite predeterminado de 1024 MB (1 GB) resulta insuficiente, provocando que el recolector de basura (Garbage Collector) colapse.
Evidencia en Logs
El fallo se confirma al localizar las siguientes líneas en los archivos catalina.log o localhost.log (C:\Xetux-Server\tomcat-xspos\logs\):
java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: Java heap space
The web application [xspos] appears to have started a thread named [...] but has failed to stop it. This is very likely to create a memory leak.
Solución Técnica
Prerrequisitos
Descargar e instalar el paquete .msi de Amazon Corretto 21 para Windows x64.
Procedimiento de Configuración
Apertura del Panel de Configuración
Para modificar los parámetros del servicio específico de Xetux, se debe forzar la apertura del panel de control de Tomcat mediante la terminal:
- Ejecutar el Símbolo del Sistema (CMD) como administrador.
- Acceder al directorio de binarios:
cd C:\Xetux-Server\tomcat-xspos\bin - Ejecutar el comando de apertura vinculada al servicio
xspos:tomcat9w.exe //ES//xspos
Vinculación de Java 21
En la ventana de Propiedades de Apache Tomcat, navegar a la pestaña Java:
- Desmarcar la casilla Use default.
- En el campo Java Virtual Machine, hacer clic en el botón de búsqueda
[...]. - Localizar el archivo
jvm.dllen la ruta de instalación de Amazon Corretto.- Ejemplo típico:
C:\Program Files\Amazon Corretto\jdk21.x.x_x\bin\server\jvm.dll
- Ejemplo típico:
Ajuste de Memoria Heap
En la misma pestaña Java, modificar los valores de asignación de memoria:
- Initial memory pool:
2048MB - Maximum memory pool:
4096MB
Hacer clic en Aplicar y luego en Aceptar.
Reinicio y Validación
- Abrir el gestor de servicios de Windows (
services.msc). - Localizar el servicio Apache Tomcat 9.0 xspos y seleccionar Reiniciar.
- Abrir el archivo de log más reciente en
C:\Xetux-Server\tomcat-xspos\logs\. - Validar que las primeras líneas del arranque indiquen el uso de la ruta de Java 21 y que el
max heap sizese reporte cercano a los 4096 MB.
Tabla de Comparativa de Recursos
| Parámetro | Configuración Anterior | Nueva Configuración |
|---|---|---|
| Versión de Java | Java 8 / 11 | Amazon Corretto 21 |
| Memoria Inicial (Xms) | 256 MB - 512 MB | 2048 MB |
| Memoria Máxima (Xmx) | 1024 MB | 4096 MB |