- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WebLogicServer性能及调优-调优WebLogicServerEJB.
WebLogic Server 性能及调整
-调整 WebLogic Server EJB
下列部分描述如何调整 WebLogic Server EJB 以满足应用程序需要:
常规 EJB 调整提示
调整 EJB 缓存
调整 EJB 缓冲池
CMP 实体 Bean 调整
根据监视统计信息调整
常规 EJB 调整提示
部署描述符基于 Schema。此版本 WebLogic Server 中的新增描述符不是以基于 DTD 的描述符的形式提供的。
避免使用 RequiresNew 事务参数。如果使用 RequiresNew,则会导致 EJB 容器在挂起当前事务后启动新事务。这意味着需要分配其他资源(包括单独的数据库连接)。
使用 local-interfaces 或将 call-by-reference 设置为 true,可以在一个 EJB 调用另一个 EJB 或同一应用程序中的 Servlet/JSP 调用 EJB 时避免序列化的开销。请注意以下事项:
在 WebLogic Server 8.1 之前的版本中,默认情况下 call-by-reference 处于打开状态。对于 WebLogic Server 8.1 及更高版本,默认情况下 call-by-reference 处于关闭状态。对于要迁移到 WebLogic Server 8.1 及更高版本中的未明确启用 call-by-reference 的旧应用程序,其性能可能会下降。
此优化不适用于不同应用程序间的调用。
只要有可能就要对有状态会话 Bean 使用无状态会话 Bean。与有状态会话 Bean 相比,无状态会话 Bean 的可伸缩性更高,因为不用维护状态信息。
对于驻留在 WebLogic Server 群集中的 EJB,WebLogic Server 在事务性能方面具有更多优点。单项事务使用多个 EJB 时,WebLogic Server 会尝试使用单个 WebLogic Server 实例中的 EJB 实例,而不会尝试使用不同服务器中的 EJB。这种方法可以将事务的网络流量降到最低程度。在某些情况下,一项事务可以使用驻留在群集内多个 WebLogic Server 实例中的 EJB。异构群集中会发生这种情况,其中的所有 EJB 未被部署到所有 WebLogic Server 实例中。在上述情况下,WebLogic Server 使用多层连接而不是多个直接连接访问数据存储。这种方法使用的资源更少,因此会提高事务性能。但为了得到最佳性能,群集应该是同构的,即所有 EJB 都应该驻留在所有可用 WebLogic Server 实例中。
调整 EJB 缓存
下列部分提供有关如何调整 EJB 缓存的信息:
调整有状态会话 Bean 缓存
调整实体 Bean 缓存
调整查询缓存
调整有状态会话 Bean 缓存
EJB 容器在内存中可以缓存有状态会话 Bean 的最大数目为由 weblogic-ejb-jar.xml 中指定的 max-beans-in-cache 参数指定的数目。应将此参数设置为等于并发用户数。这样可确保对磁盘以及从磁盘进行的后续激活的有状态会话 Bean 的钝化降到最低程度,这也会提高性能。
调整实体 Bean 缓存
EJB 容器在以下两个级别上缓存实体 Bean:
事务级别缓存
在事务之间缓存
事务级别缓存
从数据库中加载实体 Bean 之后,每当使用 findByPrimaryKey 请求该实体 Bean,或从该事务内的缓存引用中调用该实体 Bean 时,始终都会从缓存中检索该实体 Bean。请注意,如果使用非主键 Finder 方法获取实体 Bean,则始终会从数据库中检索实体 Bean 的持久性状态。
在事务之间缓存
也可在事务之间缓存实体 Bean 实例。但在默认情况下,不会在事务之间缓存实体 Bean 的持久性状态。要启用在事务之间进行缓存,请将 cache-between-transactions 参数的值设置为 true。
缓存状态是否安全?这取决于该 Bean 的并发策略。实体 Bean 缓存仅在可将 cache-between-transactions 安全地设置为 true 时才真正有用。在 ejbActivate() 和 ejbPassivate() 回调开销过大的情况下,确保实体缓存大小足够大则仍然是一个好办法。即使对每项事务可至少重新加载持久性状态一次,缓存中的 Bean 仍会处于已激活状态。缓存大小的值是由部署描述符参数 max-beans-in-cache 设置的,应设置为保证缓存访问次数可达到最大值。在大多数情况下,该值无须大于与实体 Bean 相关联的表中的行数和预计并发访问该 B
文档评论(0)