Visión general del almacenamiento en caché

En el sistema hay una gran cantidad de información que cambia con poca frecuencia. Para evitar el acceso a la base de datos cada vez que este tipo de información sea necesario para un usuario final o un proceso por lotes, el sistema mantiene una caché de información estática en el servidor web y en el trabajador del grupo de threads por lotes. Es lo que se conoce como "cachés de aplicación". Entre los ejemplos de las cachés de aplicación, se incluyen

  • Mensajes del sistema

  • Etiqueta de campo y otra información sobre el campo

  • Información de seguridad

El producto de marco proporciona muchas cachés específicas para los datos que se utilizan comúnmente y que se cambian con poca frecuencia. Además, las aplicaciones integrables pueden introducir cachés adicionales, según corresponda.

La información también se puede almacenar en caché, en el explorador de cada usuario.

En los temas siguientes se informa sobre cómo actualizar las distintas cachés.

Caché de servidor

La caché de servidor se refiere a los datos que se almacenan en caché en el servidor web. Un ejemplo importante del uso de esta caché es el acceso en línea a la aplicación por parte de los usuarios. La caché ayuda a mejorar el rendimiento en la navegación por el sistema, permitiendo acceder a los datos desde la caché, en lugar de tener que acudir siempre a la base de datos. Además de este acceso de usuarios a la caché del servidor web, las funcionalidades que se desplieguen en el servidor web utilizarán la caché de forma similar. Así, por ejemplo, los servicios web se despliegan en el servidor y acceden a su propia versión de la caché.

El contenido de la memoria caché se borra cada vez que se reinicia el servidor web. Esto implica que, cuando los usuarios y los servicios web vuelvan a utilizar la aplicación, se recuperarán valores nuevos desde la base de datos.

El producto ofrece también un comando de vaciado que se puede ejecutar en la URL del explorador para borrar de inmediato el contenido de la caché. El comando flushAll.jsp vacía todas las caché.

Por ejemplo, imagine el siguiente caso:

  • el servidor web y el puerto en los que trabaja se llaman OU-Production:7500
  • se añade un nuevo registro a una tabla de control y desea que esté disponible inmediatamente en las transacciones adecuadas

Se emitiría el siguiente comando en la barra de direcciones del explorador: http://OU-Production:7500/flushAll.jsp. Debe tenerse en cuenta que el comando sustituye el cis.jsp típico que aparece después del número de puerto.

Si el sistema se ha configurado correctamente, el comando flushAll enviará una solicitud para realizar un vaciado "global" de las memorias caché, incluidas la de servicios web y la del trabajador del grupo de threads. Esta funcionalidad utiliza un tema de JMS para publicar la solicitud de vaciado. Consulte en la guía de administración del servidor los detalles sobre la configuración del tema de JMS.

También debe tenerse en cuenta que el sistema incluye un servicio de negocio F1-FlushAllService, equivalente al comando flushAll, con la diferencia de que no reinicia la sesión del navegador. Puede resultar de utilidad para procesos que se generan para orquestar actualizaciones en datos de configuración donde deba garantizarse el inmediato vaciado de la caché. Este servicio de negocio también se expone como servicio web de REST.

Caché por lotes

Al enviar una tarea por lotes, el componente por lotes utiliza una caché de datos de hibernación para almacenar en caché los datos administrativos que no cambian con frecuencia. Las tablas cuyos registros se incluyen en esta caché se configuran mediante el valor del régimen de almacenamiento en caché de En caché para lotes. Es lo que a menudo se conoce como "caché L2". Para obtener más información, consulte Tablas. Al iniciar un trabajador del grupo de threads, se cargan los datos de las tablas marcados como en caché y se almacenan en caché, mientras dicho grupo de threads se esté ejecutando.

Además, las tareas por lotes también pueden acceder a las cachés de la aplicación, cuando proceda. Al iniciar un trabajador del grupo de threads, se cargan los datos de aplicación almacenados en caché y se almacenan en caché, mientras dicho grupo de threads se esté ejecutando.

En caso de que existan tareas por lotes que actualizan tablas marcadas con la opción En caché para lotes, deberán ejecutarse mediante un grupo de threads especial que se configura con el almacenamiento en caché desactivado. Para confirmar que el grupo de threads se ha configurado de esta manera, póngase en contacto con el administrador del sistema.

Si hay un cambio en los datos en caché que daban estar disponibles para la siguiente tarea por lotes, en los puntos siguientes se indica cómo se puede actualizar la caché.

  • Por defecto, el sistema está configurado para actualizar de modo automático la caché de hibernación cada 60 segundos. Sin embargo, una implantación puede sustituir la configuración para cambiar el número de segundos entre intervalos o bien para desactivar totalmente el almacenamiento en caché automático. Las cachés de la aplicación utilizadas por las tareas por lotes no se ven afectadas por esta actualización.

  • Reinicie los trabajadores del grupo de threads.

  • Ejecute el proceso en segundo plano F1–FLUSH (Vaciar todas las cachés). Este proceso en segundo plano vaciará los datos de la aplicación almacenados en caché correspondientes a todos los trabajadores del grupo de threads para todos los grupos de threads.

  • Si en la región se han configurado los trabajadores del grupo de threads para que "atiendan" a las solicitudes de vaciado global, tal como se describe en la sección Caché de servidor, las cachés de los trabajadores del grupo de threads también se actualizarán al emitir el comando flushAll.

Caché de cliente

Además de en la memoria caché del servidor Web, la información también se almacena en caché en el explorador de cada usuario. Después de borrar la memoria caché que se está manteniendo en el servidor Web, debe borrar también la memoria caché que se mantiene en el explorador del cliente. Para ello, realice lo siguiente (según el navegador empleado, los pasos del proceso pueden variar ligeramente):

  • Seleccione Herramientas en la barra de menús del explorador.
  • Seleccione Opciones de Internet... en el menú que aparece.
  • Pulse en el botón Suprimir ficheros en la ventana emergente que aparece.
  • Active Suprimir todo el contenido fuera de línea en la siguiente ventana emergente que aparece y pulse en Aceptar.
  • Introduzca la URL estándar para volver a llamar al sistema.
Nota: Actualización automática de la memoria caché del explorador. La memoria caché de cada usuario se actualiza de modo automático, según el parámetro maxAge definido en el documento web.xml del servidor web. Se recomienda establecer este parámetro en 1 segundo en entornos de prueba o desarrollo y en 28800 segundos (8 horas) en entornos de producción. Póngase en contacto con los servicios de soporte del sistema si necesita cambiar este valor.