应用程序性能和实体 Bean 行为

因为应用程序可能受益于以稍微不同的方式处理 Bean 数据管理的这些方面,所以 WebSphere® Application Server 允许您覆盖 Enterprise JavaBeans (EJB) 规范要求的两种行为。

findBy 方法的应用程序管理持久性存储同步

EJB 2.0 和 2.1 规范的 10.5.3 和 12.1.4.2 小节要求在运行作为任何 findBy 方法(findByPrimaryKey 除外)一部分的查询之前,EJB 容器将当前事务中加入的任何实体 Bean 类型的状态写出至持久存储器。换言之,该容器执行以下操作:
  1. 创建当前事务中加入的并且属于 findby 方法返回的同一类型的 Bean 列表
  2. 在运行查询之前,将这些企业 Bean 的状态存储至持久存储器
如果 EJB 实例的状态在当前事务中未改变,那么存储操作会忽略该实例。这样可以确保对所有持久数据的最新状态执行查询,从而降低发生数据完整性问题的机率。

但是,仍然存在 EJB 容器自动对每个 findBy 方法执行此操作的情况,效率不高且浪费。例如,应用程序本身确保 findBy 查询使用最新的数据,或者应用程序可以容忍一些并非最新的数据作为查询结果的一部分。

WebSphere Application Server 允许您启动受应用程序控制的同步过程,并禁用应用程序中特定 EJB 类型的容器管理的同步。 小心使用这些功能可以改进应用程序的性能而不会损坏数据完整性。请参阅主题“处理实体 Bean 与数据存储器的同步”。

避免对非修改实体 Bean 实例执行 ejbStore 调用

EJB 规范要求在落实事务时,EJB 容器对事务中的所有实体 Bean 调用用户提供的 ejbStore 方法。对于容器管理的持久性 (CMP) Bean(相对于 Bean 管理的持久性 Bean),由于 CMP Bean 上的此方法通常是空的,此操作通常不是必需的。即使在某些情况下方法不是空的,应用程序也可能只要求在当前事务期间修改 Bean 的持久状态时调用该方法。

WebSphere Application Server 提供了一种机制以指示应用程序中的特定 EJB 类型是否需要此行为。请参阅主题“避免对非修改实体 bean 实例执行 ejbStore 调用”。


指示主题类型的图标 概念主题



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