JNDI 高速缓存

为提高 Java™ 命名和目录接口 (JNDI) 操作的性能,产品 JNDI 实现使用高速缓存为查询操作减少对名称服务器的远程调用次数。对于多数情况,使用缺省高速缓存设置。

当对 InitialContext 对象进行实例化时,在 InitialContext 实例和高速缓存之间建立关联。初始上下文和查询初始上下文后直接或间接返回的任何上下文都与该同一高速缓存实例关联。缺省情况下,关联基于提供程序 URL,特别是主机名和端口。调用者可以指定高速缓存名称来重设此缺省行为。具有给定名称的高速缓存实例由配置为使用具有该名称的高速缓存的所有 InitialContext 实例共享,实际上,这些实例是使用同一上下文类装入器创建的。如果在同一服务器中运行的两个企业 Bean (EJB) 应用程序正在使用不同的上下文类装入器,那么这两个 EJB 应用程序将使用它们各自的高速缓存实例(即使高速缓存名称相同)。

建立 InitialContext 实例和高速缓存之间的关联之后,该关联不会更改。从查询操作返回的 javax.naming.Context 对象继承 Context 对象(对该对象执行查找)的高速缓存关联。用 Context.addToEnvironment()Context.removeFromEnvironment() 方法更改高速缓存属性值不会影响高速缓存行为。您可以更改每次 InitialContext 实例化时影响给定高速缓存实例的属性。

一个高速缓存只能用于一个进程,且在该进程结束之后不会存留。从查询操作返回高速缓存的对象,直到达到高速缓存的最大高速缓存周期或达到对象的高速缓存条目的最大条目周期为止。此时,对对象的查询会刷新对象的高速缓存条目。缺省情况下,高速缓存和高速缓存条目的生存期不受限制。

通常,高速缓存的对象是相对静态的条目,且变失效的对象不算是问题。但是,您可以对高速缓存条目或高速缓存设置超时值,这样就会定期地刷新高速缓存内容。

如果对对象执行绑定或重新绑定操作,那么在任何高速缓存(除了与发出绑定或重新绑定的上下文关联的高速缓存外)中都不反映更改。当调用多个进程时最可能发生此情况,因为不同的进程不共享同一高速缓存,且进程中所有线程中的上下文对象通常会共享给定名称服务提供者的同一高速缓存实例。


指示主题类型的图标 概念主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cnam_naming_caching
文件名:cnam_naming_caching.html