配置 WSJPA ObjectCache 以提高性能

WebSphere® Java™ 持久性 API (WSJPA) 至 OpenJPA 的扩展提供了只读对象高速缓存,该对象高速缓存可提高特定用例中的性能。仅当您使用处于 JPA 2.0 规范级别的 WSJPA 时,才支持此配置。

关于此任务

实现 WSJPA ObjectCache 对象可以提高应用程序的性能,该应用程序含有用在静态的只读方法中的一组数据,例如访问基本持久性字段和将单向关系持久存储为只读类型。WSJPA ObjectCache 是用于在 EntityManagerFactory 对象级别进行操作的只读实体的非分发式高速缓存。这些高速缓存实例由 Java 虚拟机 (JVM) 中的所有 EntityManager 对象共享,但这些实例不由任何 EntityManager 对象进行管理。当启用该功能时,将先检查 ObjectCache 对象,然后应用程序才访问 OpenJPA DataCache 对象和数据库,从数据库加载持久对象并将这些持久对象存储在 OpenJPA 对象高速缓存中。此外,ObjectCache 实现可与 OpenJPA DataCache 和 QueryCache 功能配合使用以获得更高性能。

请注意以下条件和限制:
  • 从应用程序角度,包括严格只读的类型
    • 将只读类型传递至以下操作可引起 UnsupportedOperationException 错误消息:
      • 正在将只读实体传递至 EntityManager.merge(…)。
      • 正在将只读实体传递至 EntityManager.persist(…)。
      • 正在将只读实体传递至 EntityManager.remove(…)。
    • 对 WebSphere JPA 运行时所返回的只读类型调用 setter 方法可引起 UnsupportedOperationException 错误消息。
  • 包括在 ObjectCache 中的类型不适合于高速缓存到 OpenJPA DataCache 中。请不要混淆可由 OpenJPA 二级高速缓存 (openjpa.DataCache) 进行高速缓存的类型;ObjectCache 不应与 JPA 2.0 规范定义的第二级高速缓存混淆。如果这些类型是混淆类型,那么在创建 EntityManager 对象时将发生异常。
  • 只包括基本字段,否则在创建 EntityManager 对象时可能会发生异常。
  • “正在将只读实体传递至 EntityManager.contains(…)”始终返回 false,即使刚刚从“查找/查询”操作将其返回也是如此。
可以为单个 JVM 环境启用对象高速缓存,指定此高速缓存所包括的类型,设置它的最大元素大小以及指定超时值。
支持的配置 支持的配置: 首选属性名为 wsjpa.ObjectCache,但是 openjpa.ObjectCache 也是有效配置。sptcfg

过程

下一步做什么

要启用在创建第一个 EntityManager 对象时自动装入整个 ObjectCache,请遵循自动预装入 WSJPA ObjectCache主题中的步骤。此外,有关所有高速缓存扩展的信息,您可以阅读《OpenJPA 用户指南》中关于高速缓存的更多内容。

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



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