自动预装入 WSJPA ObjectCache

OpenJPA 的 WebSphere® Java™ Persistence API (WSJPA) 扩展提供只读 ObjectCache,其可以在特定用例中改善性能。缺省情况下,以懒方法装入高速缓存中的数据,这表示在应用程序请求单个实体时将其装入内存中。如果您希望从开始就装入所有实体,那么您可以配置应用程序服务器从数据库预装入在 ObjectCache 中配置的所有实体。预装入 ObjectCache 将使您可以高速缓存在您通过懒方法装入 ObjectCache 时受到限制的实体。仅当您使用处于 JPA 2.0 规范级别的 WSJPA 时,才支持此配置。

关于此任务

您启用对 ObjectCache 的自动装入时,JPA 环境将自动改变 ObjectCache 大小并将其预装入,而不是等待应用程序请求单一实体。 应用程序服务器创建第一个 EntityManager 时,预装入的进程将启动,而应用程序服务器将从数据库预装入在 ObjectCache 中配置的所有实体。此预装入过程将在单独的处理线程中异步进行。
避免故障 避免故障: 请注意以下信息:
  • 对于在 ObjectCache 中配置的实体,您还需要配置 ObjectCache 中的所有积极关系;任何懒关系将不可用。
  • 虽然应用程序服务器正在预装入 ObjectCache 时,将从数据库访存实体。应用程序服务器不会将任何实体添加到其他方法装入的 ObjectCache。
  • 如果您的对象图形很复杂,那么自动装入高速缓存会耗费极长的时间。
  • 启用此功能时,请小心,因为它会耗用所有可用内存。为了让该功能工作,JPA 环境需要在内存中有完整的数据集。
gotcha
预装入过程完成时,您会看到如下的参考消息:
Successfully loaded the ObjectCache with [...] Entities in [...] seconds.

过程

  1. 将 ObjectCache 的 MaxSize 属性设置为 auto 例如,将以下条目包括在 .properties 文件中:
    <property name="wsjpa.ObjectCache" value=”true(Types=com.ibm.wsjpa.Foo; com.ibm.wsjpa.Bar, MaxSize=auto)”/>
    MaxSize 属性的缺省值是 1000,但是您将 MaxSize 属性设置为 auto 时,将启用预装入机制。
  2. 可选: 复审您为 EvictionSchedule 属性设置的值,这在配置 WSJPA ObjectCache 以提高性能主题中进行了解释。 您将 EvictionSchedule 属性与 MaxSize=auto 设置一起使用时,EvictionSchedule 属性的实施不同于缺省行为:没有按配置的安排清除 ObjectCache,而是将自动重新装入 ObjectCache。

示例

以下示例显示如何将 ObjectCache 配置为自动装入:
  • 以下属性指定在应用程序服务器创建第一个 EntityManager 时将自动装入 ObjectCache:
    <property name=" wsjpa.ObjectCache" value=”true(Types=com.ibm.wsjpa.Foo; com.ibm.wsjpa.Bar, MaxSize=auto)”/>
  • 以下属性指定在应用程序服务器创建第一个 EntityManager 时将自动装入 ObjectCache,每隔 20 分钟将重新装入 ObjectCache:
    <property name=" wsjpa.ObjectCache" value=”true(Types=com.ibm.wsjpa.Foo; com.ibm.wsjpa.Bar,
     MaxSize=auto, EvictionSchedule=+20)”/>

指示主题类型的图标 任务主题



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