WEB开发网
开发学院软件开发Java 使用动态缓存提升 WebSphere Process Server 和 W... 阅读

使用动态缓存提升 WebSphere Process Server 和 WebSphere ESB 解决方案的性能

 2010-03-17 00:00:00 来源:WEB开发网   
核心提示: 将清单 2 中的导入添加到类中, 清单 2. 缓存组件导入importjavax.naming.InitialContext;importjavax.naming.NamingException;importcom.ibm.websphere.cache.DistributedObjectCac

将清单 2 中的导入添加到类中。

清单 2. 缓存组件导入

import javax.naming.InitialContext; 
import javax.naming.NamingException; 
import com.ibm.websphere.cache.DistributedObjectCache;

既然有了对 DynaCache 对象缓存实例的引用,您必须实现该接口操作,如清单 3 所示。

清单 3. 接口操作实现

public DataObject retrieveLocationDetails(DataObject request) { 
 
// retrieve key to cache from the request 
String key = request.getString("id"); 
 
DataObject responseObject = null; 
 
// get response from cache 
responseObject = cache == null ? null : (DataObject) cache.get(key); 
 
// if cache miss invoke service and update cache 
if (responseObject == null) { 
 DataObject responseMessage = (DataObject) 
locateService_LocationServicePartner().invoke("retrieveLocationDetails", request); 
responseObject = responseMessage == null ? null : 
responseMessage.getDataObject("response"); 
 
 if ((cache != null) && (responseObject != null)) { 
 cache.put(key, responseObject); 
 } 
} 
return responseObject;

现在花点时间来理解这段代码。作为 WebSphere Process Server 和 WebSphere ESB 运行时架构基础的 WebSphere Application Server 提供了一种分布式的缓存基础架构和 API。

可以使用 JNDI 名称 services/cache/distributedmap 找到现成的默认对象缓存实例。对于本教程来说,使用该实例是可以的,但在生产系统中,最佳实践是为您想缓存响应的每个服务创建一个专用实例。这将保证缓存实例的独立性,并为禁用缓存条目和清空缓存提供了更细的粒度。

接口方法将会从请求中检索 id 属性,然后将其用作从缓存中检索响应的键值。如果未找到对应的响应,代码将调用服务伙伴。

上一页  1 2 3 4 5 6 7  下一页

Tags:使用 动态 缓存

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接