Sugerencias de resolución de problemas para el servicio de memoria caché dinámica

El servicio de memoria caché dinámica funciona dentro de una JVM (Máquina virtual Java™) del servidor de aplicaciones, interceptando llamadas a objetos que se pueden incluir en memoria caché.

Los servlets no se guardan en la memoria caché

Respuesta recomendada

Habilita la colocación en memoria caché de servlets. En la página de valores de contenedor web de la consola administrativa, seleccione el recuadro de selección Habilitar la colocación en memoria caché de servlets.

Las entradas de memoria caché no se graban en disco

Explicación Respuesta recomendada
Las entradas de memoria caché se graban en disco cuando la memoria caché está completa y se añaden nuevas entradas a la memoria caché en memoria. Las entradas de memoria caché también se graban en disco cuando está habilitada la opción Vaciado en disco de la consola administrativa y se detiene el servidor.

Compruebe que la opción Descarga de disco este habilitada en la página Valores de servicio de memoria caché dinámica de la consola administrativa. Compruebe también que las entradas de memoria caché que se graban en disco son serializables y que no tienen la configuración PersistToDisk establecida como false.

Algunos servlets no se duplican o no se graban en disco

Respuesta recomendada
Compruebe que los atributos y la respuesta son serializables. Si no desea almacenar los atributos, utilice la siguiente propiedad en la política de memoria caché:
<property name="save-attributes">false</property>

El servicio de memoria caché dinámica no coloca en memoria caché fragmentos en Edge

Respuesta recomendada
Establezca la propiedad EdgeCacheable como true en la política de memoria caché de esas entradas que se van a colocar en memoria caché en Edge.
<property name="EdgeCacheable">true</property>

Las invalidaciones de memoria caché dinámica no se envían al plug-in de IBM HTTP Server

Explicación Respuesta recomendada
El archivo DynaCacheEsi.ear tiene que enviar las invalidaciones a las memoria cachés externas.

Instale DynaCacheEsi.ear utilizando la consola administrativa.

Las entradas de memoria caché se desalojan a menudo

Problema Explicación Respuesta recomendada
La memoria caché está completa y se añaden nuevas entradas a la memoria caché. Las entradas de memoria caché se desalojan de la memoria caché cuando la memoria caché está completa y se añaden nuevas entradas a la memoria caché. Un mecanismo de desalojo LRU (el menos utilizado recientemente) elimina la entrada que no se ha utilizado hace más tiempo para dar cabida a las nuevas entradas.

Habilite Descarga de disco en la página Valores de servicio de memoria caché dinámica de la consola administrativa para que las entradas se graben en disco. También puede aumentar el tamaño de la memoria caché para dar cabida a más entradas.

Las entradas de memoria caché en disco con tiempo de espera establecido como 0 caducan después de un día

Explicación Respuesta recomendada
El ciclo de vida máximo de una entrada en la memoria caché en disco es de 24 horas. Un tiempo de espera de 0 en la política de memoria caché configura esas entradas para que permanezcan en la memoria caché en disco un día completo, a menos que se desalojen antes. Establezca el tiempo de espera de la política de memoria caché con un valor menor que 0.

No se pueden supervisar las entradas de memoria caché en Edge

Explicación Respuesta recomendada

Utilice el supervisor de memoria caché dinámica para supervisar el contenido de la memoria caché, la memoria caché de disco y las memoria cachés externas como, por ejemplo, la memoria caché Edge. Para que la memoria caché del procesador ESI pueda mostrarse en el supervisor de memoria caché, la aplicación DynaCacheEsi.ear debe estar instalada y la propiedad esiInvalidationMonitor debe estar establecida como true en el archivo plugin-cfg.xml.

Establezca la propiedad esiInvalidationMonitor del archivo plugin-cfg.xml en true. Consulte el artículo sobre visualización de información de la memoria caché para obtener más información sobre el control de la actividad del servicio de memoria caché dinámica.

Ajustar la memoria caché a mi entorno

Respuesta recomendada
Utilice Tivoli Performance Viewer para estudiar el comportamiento en memoria caché de las aplicaciones. Considere también realizar las acciones siguientes:
  • Aumente la prioridad de las entradas de memoria caché que sean caras de volver a generar.
  • Modifique el tiempo de espera de las entradas, para que puedan estar en memoria todo el período de validez.
  • Habilite la descarga en disco para guardar entradas desalojadas mediante LRU.
  • Aumente el tamaño de la memoria caché.

Borrado de los archivos de memoria caché de disco después de instalar el fixpack o un nuevo release

Síntoma Problema Respuesta recomendada
Si el servidor se ha configurado para utilizar la memoria caché de disco, debe suprimir los archivos de memoria caché de disco porque dichos archivos no son compatibles con la versión anterior. La anomalía producida al eliminar los archivos de memoria caché de disco antiguos provoca un error de ClassCastException en el archivo systemerr.log cuando se accede a la memoria caché desde el disco.
Nota: En este tema se hace referencia a uno o más de los archivos de registro del servidor de aplicaciones. Como alternativa recomendada, puede configurar el servidor para utilizar la infraestructura de registro y rastreo HPEL en lugar de utilizar los archivos SystemOut.log , SystemErr.log, trace.log y activity.log en sistemas distribuidos y de IBM® i. Puede también utilizar HPEL junto con sus recursos de registro nativos de z/OS. Si utiliza HPEL, puede acceder a toda la información de registro y rastreo utilizando la herramienta de línea de mandatos LogViewer desde el directorio bin de perfil de servidor. Consulte la información sobre la utilización de HPEL para resolver problemas de aplicaciones para obtener más información sobre la utilización de HPEL.
Para suprimir la memoria caché de disco, siga estos pasos:
  1. Tome nota de la ubicación de descarga del disco. Si no conoce la ubicación de descarga de la memoria caché de disco, efectúe los siguientes pasos:
    1. Pulse Servidores > Servidores de aplicaciones >nombre_servidor > Servicios de contenedor > Servicio de memoria caché dinámica en el árbol de navegación de la consola administrativa.
    2. La ubicación se especifica en el campo Descarga de disco. Si no se especifica la ubicación, se utiliza el directorio predeterminado raíz_perfil/temp/su_nodo/nombre_servidor/_dynacache.
  2. Asegúrese de que el servidor está detenido y suprima todos los archivos bajo la ubicación de descarga.
  3. Si utiliza el producto WebSphere Application Server, Network Deployment, suprima los archivos de memoria caché de disco de cada servidor.

Definición del atributo flush en el valor true para cada distintivo <jsp:include> del archivo JSP (JavaServer Pages) que puede colocarse en memoria caché

Asegúrese de establecer el atributo flush en true en cada distintivo <jsp:include> del archivo JSP (JavaServer Pages) que puede colocarse en memoria caché.

Síntoma Problema Descripción Respuesta recomendada
Cuando se obtiene el archivo JSP (JavaServer Pages) de la memoria caché dinámica, no se visualiza una parte de la página. El atributo flush se establece en false en el distintivo <jsp: include> del archivo JSP. Cuando el archivo JSP que puede colocarse en memoria caché incluye otro archivo JSP y si el atributo flush se establece en false en el distintivo <jsp:include>, no se almacena en memoria caché ninguno de los datos grabados en la corriente de salida padre antes del distintivo <jsp:include>. Establezca flush=true en cada distintivo <jsp: include> del archivo JSP que puede colocarse en memoria caché.
[z/OS]

Actividad de E/S del sistema de archivos cuando el servidor de aplicaciones está desocupado

Síntoma Explicación Respuesta posible Respuesta recomendada
Experimenta actividad de E/S del sistema de archivos cuando el servidor de aplicaciones está desocupado. WebSphere Application Server está sondeando el Sistema de archivos jerárquico (HFS) en busca del archivo cachespec.xml, incluso cuando no haya políticas de memoria caché definidas. La memoria caché dinámica consulta el sistema de archivos cada 30 segundos para comprobar si hay actualizaciones en el archivo de política de memoria caché. Mediante la comprobación de si hay actualizaciones del archivo de política de memoria caché, la memoria caché dinámica puede actualizar automáticamente las políticas de memoria caché modificadas.

La memoria caché dinámica está habilitada de manera predeterminada porque varios componentes confían en ésta por motivos de rendimiento. Puede inhabilitar el servicio de memoria caché dinámica utilizando un script de wsadmin o mediante la consola administrativa. Consulte el tema Utilización del servicio de memoria caché dinámica para obtener más información sobre cómo habilitar el servicio de memoria caché dinámica.

PRECAUCIÓN:
Si se inhabilita la memoria caché dinámica podría experimentar una ralentización del rendimiento de seguridad porque utiliza la funcionalidad de correlación distribuida del servicio de memoria caché dinámica.
Establezca flush=true en cada distintivo <jsp: include> del archivo JSP que puede colocarse en memoria caché.

Limitación de memoria caché dinámica al utilizar el distintivo <c:import> de JSTL para incluir un fragmento

Problema Descripción Respuesta recomendada
Cuando se incluye un fragmento que se puede guardar en memoria caché utilizando el distintivo <c:import> de JSTL (JavaServer Pages Standard Tag Library), parte del contenido de página desaparece mientras que otra parte se visualiza dos veces en una coincidencia de memoria caché. La memoria caché dinámica se basa en el desecho del contenido antes y después de incluir un fragmento de modo que no se pierda el contenido padre antes de la operación de inclusión y también para evitar que se importe el contenido hijo al fragmento padre.

No obstante, en el caso del distintivo <c:import> de JSTL, no se da soporte al atributo flush=true, que vacía el transcriptor padre antes de que se invoque el fragmento hijo. Asimismo, JSTL coloca las respuestas en el almacenamiento intermedio, de modo que el transcriptor hijo no se desecha después de que se cree el fragmento hijo. Posteriormente, la respuesta hija se migra al padre.

Restricción:
La memoria caché dinámica devolverá varias sentencias include cuando se utilice el distintivo <c:import> JSTL en un archivo JavaServer Pages (JSP) en memoria caché.
Para evitar este problema, incluya la sentencia <c:import> entre sentencias del método out.flush como se muestra a continuación:
<% out.flush(); %>
<c:import url="DNCParent2.jsp" />
<% out.flush(); %>

Los mensajes del bus de integración de servicios se repiten

Los mensajes del bus de integración de servicios se repiten en los registros de los miembros del clúster en los que se aloja una aplicación de producción

Problema Respuesta recomendada
En un entorno de varias células, los mensajes siguientes se repiten en los registros de los miembros del clúster que alojan la aplicación de producción:
[indicación_hora] CWSIT0007W: No es posible establecer contacto con
 el servidor de rutinas de carga en
 9.9.9.9:7299:BootstrapBasicMessaging debido a la excepción: 
 com.ibm.websphere.sib.exception.SIResourceException: 
 CWSIC1001E: 
Un cliente ha intentado conectarse a un motor de mensajería
 (9.9.9.9:7299 - BootstrapBasicMessaging) but
 pero la conexión no ha podido completarse. Asegúrese de que 
 el motor de mensajería se haya iniciado: excepción com.ibm.ws.sib
 .jfapchannel.JFapConnectFailedException: CWSIJ0063E: No se
 puede establecer una conexión de red con el nombre del host 9.9.9.9, puerto 7299...
[indicación_hora] 00000023 SystemOut O RemoteInvalidator no se ha
 podido conectar a ...
En primer lugar, asegúrese de cada miembro del bus de integración de servicios en la célula remota se haya iniciado. A continuación, asegúrese de que el puerto SIB_ENDPOINT_ADDRESS se haya especificado correctamente para cada miembro del bus de integración de servicios en la célula remota o en el grupo principal. Si se ha especificado un puerto erróneo, suprima la configuración de salida "--setup=dynacacheOutSIB --delete..." y vuelva a configurarlo utilizando el puerto correcto. Cuando todo funcione correctamente, se visualizará un mensaje similar al siguiente en el archivo de registro:
[indicación_hora] 0000000a RemoteInvalid I
DYNA1075I: El grupo de memoria caché externa "RemoteJMSInvalidator" está conectado. El
nombre JNDI configurado
de la fábrica de conexiones de cola es "DynacacheDestination-cell2" y el nombre JNDI de
of
destino es "jms/DynacacheOutBoundConnectionFactory-cell1".

El componente de mensajería de la plataforma no puede autenticar el ID de usuario

Explicación Respuesta recomendada
En un entorno de varias células, un miembro de bus de integración de servicios tiene el siguiente error:
[indicación_hora] 00000022 SibMessage   E  [:] CWSII0050E:
El componente Platform Messaging no puede autenticar el ID de usuario.
Este mensaje podría ser confuso, ya que el servicio de memoria caché dinámica no utiliza buses seguros.
Este mensaje puede indicar uno de los problemas siguientes:

El servidor de bus de integración de servicios recibe una solicitud de un destino de bus que no existe. Asegúrese de que se haya utilizado el nombre de célula remota correcto al ejecutar "--setup=dynacacheOutSIB" y "--setup=dynacacheECA" en la célula de envío.

No hay miembros del bus de integración de servicios disponibles. Este problema se produce a menudo porque se especifica el clúster incorrecto cuando se realiza la configuración de entrada "--setup=dynacacheInSIB". Asegúrese de que se haya especificado el clúster del bus de integración de servicios para la opción "--clúster" y no algún otro clúster.

El ID exclusivo del motor de mensajería no coincide con el que se encuentra en el almacén de datos

Explicación Respuesta recomendada
En un entorno de varias células, un miembro de bus de integración de servicios tiene el siguiente error:
[DynacacheBus-edgeaphid10Cell01-cg2:edgeaphid10Node01.
 cg2SIBServer-DynacacheBus-edgeaphid10Cell01-cg2] 
CWSIS1535E: El ID exclusivo del motor de mensajería no 
 coincide con el encontrado en el almacén de datos.  ME_UUID=D520787E8CA7F18A, ME_UUID(DB)=980C0B42B3A904F3
[indicación_hora] 0000002f SibMessage    I   
[DynacacheBus-edgeaphid10Cell01-cg2:edgeaphid10Node01.
 cg2SIBServer-DynacacheBus-edgeaphid10Cell01-cg2] 
CWSIS1546I: El motor de mensajería, 
 ME_UUID=D520787E8CA7F18A, INC_UUID=7228ea45e216f3ef,
 ha perdido un bloqueo existente o no ha podido obtener un bloqueo inicial  en el
almacén de datos. [indicación_hora] 0000002f SibMessage    I   
[DynacacheBus-edgeaphid10Cell01-cg2:edgeaphid10Node01.
 cg2SIBServer-DynacacheBus-edgeaphid10Cell01-cg2] 
CWSIS1519E: El motor de mensajes edgeaphid10Node01.
 cg2SIBServer-DynacacheBus-edgeaphid10Cell01-cg2 
 no puede obtener el bloqueo en su almacén de datos, que garantiza
 el acceso exclusivo a los datos.
[indicación_fecha_hora] 0000002d SibMessage    E   
[DynacacheBus-edgeaphid10Cell01-cg2:edgeaphid10Node01.
 cg2SIBServer-DynacacheBus-edgeaphid10Cell01-cg2] 
CWSIS0002E: El motor de mensajería ha encontrado una excepción
 mientras se iniciaba. Excepción: com.ibm.ws.sib.msgstore.PersistenceException: 
 CWSIS1501E: El origen de datos ha producido una excepción
 inesperada: com.ibm.ws.sib.msgstore.persistence.
 DatasourceWrapperStateException: No se pueden proporcionar conexiones nuevas
 porque la capa de persistencia se ha
 detenido en com.ibm.ws.sib.msgstore.persistence.impl.
 PersistentMessageStoreImpl.start
 	(PersistentMessageStoreImpl.java:188)
		en com.ibm.ws.sib.msgstore.impl.MessageStoreImpl.
   start(MessageStoreImpl.java:1175)
		en com.ibm.ws.sib.admin.impl.JsMessagingEngineImpl.
	 	 start(JsMessagingEngineImpl.java:491)

Detenga el servidor, suprima el directorio en RAÍZ_INSTALACIÓN_WAS\profiles\AppSrv01\filestores\com.ibm.ws.sib que corresponda al miembro de bus de integración de servicios y reinicie el servidor.

El script dynacacheJMSSIB no puede localizar el archivo DynacacheMessageHandler.ear

Explicación Respuesta recomendada
En un entorno de varias células, el script dynacacheJMSSIB no puede localizar el archivo DynacacheMessageHandler.ear y aparece el mensaje siguiente en el registro:
WASX7017E: Se ha recibido una excepción cuando se ejecutaba el archivo 
"../../../util/dynacacheJMSSIB.py"; información de excepción: 
com.ibm.ws.scripting.ScriptingException: WASX7115E: 
No se puede leer el archivo de entrada "/opt/WAS/6.1/cf270928.19
 /profiles/AppSrv01/logs/DynacacheMessageHandler.ear"
Ejecute el script dynacacheJMSSIB en WAS_INSTALL_ROOT/profiles/PROFILE_NAME/bin de forma que éste pueda localizar ../../../util/dynacacheJMSSIB.py y ../../../installableApps/DynacacheMessageHandler.ear en las vías de acceso relativas correspondientes.

Icon that indicates the type of topic Reference topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rdyn_trb
File name: rdyn_trb.html