Colocación en memoria caché de JNDI

Para aumentar el rendimiento de las operaciones JNDI (Java™ Naming and Directory Interface), la implementación del JNDI del producto utiliza la colocación en memoria caché para reducir el número de llamadas remotas al servidor de nombres para operaciones de búsqueda. En la mayoría de los casos, utilice el valor de memoria caché predeterminado.

Cuando se crea una instancia de un objeto InitialContext, se establece una asociación entre la instancia de InitialContext y una memoria caché. El contexto inicial y cualquier contexto que devuelva de forma directa o indirecta una operación de búsqueda del contexto inicial se asocian a la misma instancia de memoria caché. De forma predeterminada, la asociación está basada en el URL del proveedor, en especial, el nombre de host y el puerto. El llamante puede especificar el nombre de la memoria caché para alterar este comportamiento predeterminado. Una instancia de memoria caché de un nombre determinado es compartida por todas las instancias de InitialContext configuradas para utilizar una memoria caché de ese nombre, que se crearon con el mismo cargador de clase de contexto en efecto. Dos aplicaciones EJB que se ejecuten en el mismo servidor utilizarán sus propias instancias de memoria caché si utilizan distintos cargadores de clase de contexto, aunque los nombres de memoria caché sean iguales.

Una vez establecida una asociación entre una instancia de InitialContext y la memoria caché, la asociación no cambia. Un objeto javax.naming.Context devuelto por una operación de búsqueda hereda la asociación de la memoria caché del objeto Context en el que se realizó la búsqueda. Cambiar los valores de las propiedades de la memoria caché con el método Context.addToEnvironment() o Context.removeFromEnvironment() no afecta al comportamiento de la memoria caché. Las propiedades que afecten a una determinada instancia de memoria caché se pueden cambiar con cada instancia de InitialContext.

Una memoria caché está restringida a un proceso y no persiste una vez terminada la vida de ese proceso. Un objeto en memoria caché se devuelve de la búsqueda hasta que se alcanza la duración máxima de la memoria caché o la duración máxima de la entrada de memoria caché del objeto. Después de este intervalo de tiempo, la búsqueda del objeto renueva la entrada de memoria caché para el objeto. De forma predeterminada, las memoria cachés y las entradas de memoria caché tienen tiempos de vida ilimitados.

Generalmente, los objetos colocados en memoria caché son entidades relativamente estáticas, y los objetos obsoletos no constituyen un problema. Sin embargo, se pueden establecer valores de tiempo de espera en entradas de memoria caché o en una memoria caché, de modo que el contenido de la memoria caché se renueve periódicamente.

Si se ejecuta una operación de enlace o reenlace sobre un objeto, el cambio no se refleja en ninguna memoria caché que no sea la asociada con el contexto desde el que se ejecutó el enlace o el reenlace. Es probable que este escenario tenga lugar cuando estén implicados varios procesos, ya que distintos procesos no comparten la misma memoria caché, y los objetos de contexto de todas las hebras de un proceso comparten generalmente la misma instancia de memoria caché para un determinado nombre de proveedor de servicio.


Icon that indicates the type of topic Concept topic



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