配置动态高速缓存磁盘卸载

使用此任务来配置动态高速缓存磁盘卸载,它将从内存高速缓存中删除的高速缓存条目保存到磁盘中。

有关此任务

缺省情况下,当高速缓存条目数达到给定应用程序服务器的配置限制时,高速缓存条目从内存高速缓存中移除,允许新条目存储到高速缓存中。 使用磁盘卸载将正在从内存高速缓存中移除的高速缓存条目复制到磁盘,以便将来有可能要访问它们。

注: 要提高动态高速缓存磁盘卸载性能,请对每个 JVM 仅使用一个硬盘驱动器。

过程

  1. 在管理控制台中,单击 服务器> 服务器类型> WebSphere 应用程序服务器> server_name > 容器服务> 动态高速缓存服务
  2. 选择 启用磁盘卸载
  3. 在启用磁盘卸载之后,可以设置“磁盘卸载位置”。
    磁盘卸载位置指定要在磁盘上保存高速缓存条目的位置。 对于同一个节点上定义的任何应用程序服务器来说,磁盘卸载位置必须唯一。 如果同一个节点上定义多个服务器,确保磁盘卸载位置对于每个服务器是不同的。
  4. 如果在服务器停止时需要将内存中的高速缓存对象保存到磁盘,请启用“清空到磁盘”。
    如果选择了此选项,那么必须启用磁盘卸载。 如果未启用“清空到磁盘”,那么在服务器停止时会删除所有高速缓存对象。
  5. 单击 应用确定
  6. 重新启动 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作为 root 用户和server2运行方式wasuserwasgroup,磁盘卸载位置中的高速缓存文件可能是使用 root 用户许可权创建的。 此情况导致运行于非根服务器上的应用程序在尝试读或写入高速缓存时发生崩溃。