欢迎来到天天文库
浏览记录
ID:8923787
大小:78.29 KB
页数:11页
时间:2018-04-12
《weblogicserver性能及调优-调优weblogicserverejb》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、WebLogicServer性能及调整-调整WebLogicServerEJB下列部分描述如何调整WebLogicServerEJB以满足应用程序需要:§常规EJB调整提示§调整EJB缓存§调整EJB缓冲池§CMP实体Bean调整§根据监视统计信息调整常规EJB调整提示§部署描述符基于Schema。此版本WebLogicServer中的新增描述符不是以基于DTD的描述符的形式提供的。§避免使用RequiresNew事务参数。如果使用RequiresNew,则会导致EJB容器在挂起当前事务后启动新事务。这意味着需
2、要分配其他资源(包括单独的数据库连接)。§使用local-interfaces或将call-by-reference设置为true,可以在一个EJB调用另一个EJB或同一应用程序中的Servlet/JSP调用EJB时避免序列化的开销。请注意以下事项:·在WebLogicServer8.1之前的版本中,默认情况下call-by-reference处于打开状态。对于WebLogicServer8.1及更高版本,默认情况下call-by-reference处于关闭状态。对于要迁移到WebLogicServer8.1及
3、更高版本中的未明确启用call-by-reference的旧应用程序,其性能可能会下降。·此优化不适用于不同应用程序间的调用。§只要有可能就要对有状态会话Bean使用无状态会话Bean。与有状态会话Bean相比,无状态会话Bean的可伸缩性更高,因为不用维护状态信息。§对于驻留在WebLogicServer群集中的EJB,WebLogicServer在事务性能方面具有更多优点。单项事务使用多个EJB时,WebLogicServer会尝试使用单个WebLogicServer实例中的EJB实例,而不会尝试使用不同服
4、务器中的EJB。这种方法可以将事务的网络流量降到最低程度。在某些情况下,一项事务可以使用驻留在群集内多个WebLogicServer实例中的EJB。异构群集中会发生这种情况,其中的所有EJB未被部署到所有WebLogicServer实例中。在上述情况下,WebLogicServer使用多层连接而不是多个直接连接访问数据存储。这种方法使用的资源更少,因此会提高事务性能。但为了得到最佳性能,群集应该是同构的,即所有EJB都应该驻留在所有可用WebLogicServer实例中。调整EJB缓存下列部分提供有关如何调整E
5、JB缓存的信息:§调整有状态会话Bean缓存§调整实体Bean缓存§调整查询缓存调整有状态会话Bean缓存EJB容器在内存中可以缓存有状态会话Bean的最大数目为由weblogic-ejb-jar.xml中指定的max-beans-in-cache参数指定的数目。应将此参数设置为等于并发用户数。这样可确保对磁盘以及从磁盘进行的后续激活的有状态会话Bean的钝化降到最低程度,这也会提高性能。调整实体Bean缓存EJB容器在以下两个级别上缓存实体Bean:§事务级别缓存§在事务之间缓存事务级别缓存从数据库中加载实体
6、Bean之后,每当使用findByPrimaryKey请求该实体Bean,或从该事务内的缓存引用中调用该实体Bean时,始终都会从缓存中检索该实体Bean。请注意,如果使用非主键Finder方法获取实体Bean,则始终会从数据库中检索实体Bean的持久性状态。在事务之间缓存也可在事务之间缓存实体Bean实例。但在默认情况下,不会在事务之间缓存实体Bean的持久性状态。要启用在事务之间进行缓存,请将cache-between-transactions参数的值设置为true。缓存状态是否安全?这取决于该Bean的并
7、发策略。实体Bean缓存仅在可将cache-between-transactions安全地设置为true时才真正有用。在ejbActivate()和ejbPassivate()回调开销过大的情况下,确保实体缓存大小足够大则仍然是一个好办法。即使对每项事务可至少重新加载持久性状态一次,缓存中的Bean仍会处于已激活状态。缓存大小的值是由部署描述符参数max-beans-in-cache设置的,应设置为保证缓存访问次数可达到最大值。在大多数情况下,该值无须大于与实体Bean相关联的表中的行数和预计并发访问该Bean
8、的线程数的乘积。调整查询缓存查询缓存是WebLogicServer9.0中的新功能,只读CMP实体Bean通过该功能可以缓存任意Finder方法的结果。除prepared-queryFinder方法之外,查询缓存支持所有Finder方法。查询缓存可分为应用程序级别缓存和Bean级别缓存。缓存的大小受weblogic-ejb-jar.xml参数max-queries-in-cache限制
此文档下载收益归作者所有