配置动态高速缓存磁盘卸载
使用此任务来配置动态高速缓存磁盘卸载,它将从内存高速缓存中删除的高速缓存条目保存到磁盘中。
关于此任务
缺省情况下,当高速缓存条目数达到给定应用程序服务器的配置限制时,高速缓存条目从内存高速缓存中移除,允许新条目存储到高速缓存中。使用磁盘卸载将正在从内存高速缓存中移除的高速缓存条目复制到磁盘,以便将来有可能要访问它们。
如果应用程序服务器中有一个或多个服务方,那么可以使用磁盘卸载功能。有关启用和禁用多个服务方的更多信息,请参阅 在 z/OS 上启用多个服务方。
注: 要提高动态高速缓存磁盘卸载性能,请对每一个 JVM 只使用一个硬盘驱动器。
过程
- 在管理控制台中,单击服务器 > 服务器类型 > WebSphere 应用程序服务器 > server_name > 容器服务 > 动态高速缓存服务。
- 选择启用磁盘卸载。
- 在启用磁盘卸载之后,可以设置“磁盘卸载位置”。 磁盘卸载位置指定要在磁盘上保存高速缓存条目的位置。对于同一个节点上定义的任何应用程序服务器来说,磁盘卸载位置必须唯一。如果同一个节点上定义多个服务器,确保磁盘卸载位置对于每个服务器是不同的。
- 如果在服务器停止时需要将内存中的高速缓存对象保存到磁盘,请启用“清空到磁盘”。 如果选择了此选项,那么必须启用磁盘卸载。如果未启用“清空到磁盘”,那么在服务器停止时会删除所有高速缓存对象。
- 单击应用或确定。
- 重新启动 WebSphere® Application Server。
结果
启用了磁盘卸载。将内存高速缓存条目移动到磁盘中,以便将来可访问它们。
当您具有两个或更多启用 Servlet 高速缓存的应用程序服务器,而且应用程序服务器通过动态高速缓存服务为其高速缓存指定相同磁盘卸载位置时,可能发生下列异常:
java.lang.NullPointerException at com.ibm.ws.cache.CacheOnDisk.readTemplate(CacheOnDisk.java:686) at com.ibm.ws.cache.Cache.internalInvalidateByTemplate(Cache.java:828)
或:
java.lang.NullPointerException at com.ibm.ws.cache.CacheOnDisk.readCacheEntry(CacheOnDisk.java:600) at com.ibm.ws.cache.Cache.getCacheEntry(Cache.java:341)
如果一个服务器作为根来运行,而其他服务器作为非根来运行,那么可发生此问题。例如,如果 server1 作为根运行,而 server2 作为 wasuser 或 wasgroup 运行,那么磁盘卸载位置中的高速缓存文件可使用根许可权创建。此情况导致运行于非根服务器上的应用程序在尝试读或写入高速缓存时发生崩溃。