Generalidades de Caché
Una gran cantidad de información en el sistema cambia con muy poca frecuencia. Para evitar tener que acceder a la base de datos cada vez que un usuario final o un proceso de lote solicita este tipo de información, el sistema mantiene un caché de información estática en el servidor web y en el trabajador de grupo de subprocesos de lote. Se denominan "cachés de aplicación". Los siguientes son algunos ejemplos de cachés de aplicación:
-
Mensajes del sistema
-
Etiqueta de campo y otra información de campo
-
Información de Seguridad
El producto Framework proporciona muchos cachés específicos para los datos que se usan con mayor frecuencia (y que no suelen cambiarse). Además, las aplicaciones integrables específicas pueden introducir cachés adicionales según corresponda.
La información también se puede almacenar en el caché del browser de cada usuario.
En los siguientes temas, se realza información sobre el refrescamiento de distintos cachés.
Caché de Servidor
El caché del servidor se refiere a los datos que se colocan en caché en el servidor web. Un uso importante de este caché permite que los usuarios accedan en línea a la aplicación. Los cachés ayudan a lograr una mejor performance durante la navegación por el sistema, ya que permiten que se pueda acceder a los datos desde el caché en lugar de acceder siempre a la base de datos. Además del acceso de los usuarios al caché del servidor web, hay otra funcionalidad desplegada en el servidor web que usa el caché de forma similar. Por ejemplo, los servicios web se despliegan en el servidor web y acceden a su propia versión del caché.
El contenido del caché se limpia cada vez que se reinicia el servidor web. Esto significa que, una vez que los usuarios y los servicios web comienzan a usar nuevamente la aplicación, se recuperan valores nuevos de la base de datos.
El producto también ofrece un comando de eliminación que se puede ejecutar en el URL del browser para limpiar inmediatamente el contenido del caché. El comando flushAll.jsp elimina cada caché.
Por ejemplo, suponga lo siguiente:
- El servidor web y el puerto en los que trabaja se denominan OU-Production:7500
- Agrega un nuevo registro a una tabla de control y desea que esté disponible de inmediato en las transacciones apropiadas.
Debe ejecutar el siguiente comando en la barra de direcciones del browser: http://OU-Production:7500/flushAll.jsp. Tenga en cuenta que el comando reemplaza al cis.jsp típico que aparece después del número de puerto.
Si el sistema está configurado correctamente, el comando flushAll enviará una solicitud para realizar una eliminación "global" de los cachés (incluido el caché de los servicios web y el caché del proceso de grupo de subprocesos). Esta funcionalidad usa un Tema de JMS para publicar la solicitud de eliminación. Consulte la Guía de Administración de Servidores para obtener detalles acerca de cómo configurar el tema de JMS.
Tenga en cuenta también que el sistema proporciona el servicio de negocio F1-FlushAllService, que es equivalente al comando flushAll (excepto que no reinicia la sesión del browser). Puede ser útil en cualquier proceso creado para orquestar actualizaciones de datos de configuración en los casos en que desea garantizar que el caché se vacíe inmediatamente. Este servicio de negocio también se expone como servicio web REST.
Caché de Lote
Cuando se ejecuta un trabajo de lote, el componente de lote usa un caché de datos de Hibernación para almacenar los datos administrativos que no cambian con frecuencia. Las tablas cuyos registros se incluyen en esta caché se configuran mediante el valor Régimen de Caché de Colocado en Caché para Lote. Esto a menudo se denomina "caché L2". Consulte Tablas para obtener más información. Cuando se inicia un trabajador de grupo de subprocesos, se cargan los datos de las tablas marcadas como almacenadas en caché y se mantienen en el caché durante el tiempo de ejecución de ese grupo de subprocesos.
Además, los trabajos de lote pueden acceder a los cachés de aplicación si corresponde. Cuando se inicia un trabajador de grupo de subprocesos, se cargan los datos de aplicación almacenados en caché y se mantienen en el caché durante el tiempo de ejecución de ese grupo de subprocesos.
Si hay trabajos en lote que actualizan alguna tabla que está marcada como Colocado en Caché para Lote, debe ejecutar ese trabajo en lote mediante un grupo de subprocesos especial que esté configurado con el almacenamiento en caché desactivado. Póngase en contacto con el administrador del sistema para confirmar el grupo de subprocesos que está configurado de esta manera.
Si hay un cambio en los datos almacenados en caché que deben estar disponibles para el siguiente trabajo de lote, los siguientes puntos realzan cómo se puede refrescar el caché:
-
Por defecto, el sistema se configura para refrescar automáticamente el caché de Hibernación cada 60 segundos. Sin embargo, una implementación puede sustituir la configuración para cambiar el número de segundos entre intervalos o para desactivar el almacenamiento en caché automático completamente. Los cachés de aplicación que usan los trabajos de lote no se ven afectados por este refrescamiento.
-
Reinicie los trabajadores de grupo de subprocesos.
-
Ejecute el proceso de segundo plano F1–FLUSH (Eliminar Todos los Cachés). Este proceso de segundo plano eliminará los datos de aplicación almacenados en caché para todos los trabajadores de grupo de subprocesos para todos los grupos de subprocesos.
-
Si en la región se configuraron los procesos de grupo de subprocesos para que "escuchen" las solicitudes de eliminación global como se describe en el tema Caché del Servidor, también se refrescan los cachés de los procesos de grupo de subprocesos cuando se ejecuta el comando flushAll.
Caché de Cliente
Además del caché del servidor Web, la información también se coloca en caché en el browser de cada usuario. Después de limpiar el caché que se mantiene en el servidor Web, también debe limpiar el caché que se mantiene en el browser del cliente. Para eso, siga estos pasos (tenga en cuenta que, según el browser que use, los pasos pueden variar un poco):
- Seleccione Herramientas en la barra de menús del browser
- Seleccione Opciones de Internet... en el menú que aparece.
- Haga click en el botón Eliminar archivos en la ventana desplegable que aparece.
- Active Eliminar todo el contenido sin conexión en la ventana desplegable subsiguiente que aparece, y haga click en Aceptar.
- Posteriormente, ingrese el URL standard para volver a invocar el sistema.