|
以下部分包含调整 Web 应用程序和管理会话的 BEA 最佳实践:
可以通过禁用 Servlet 和 JDP 页面检查来提高性能。将以下每个参数都设置为 -1:
BEA 提供了三个可以在 JSP 页中使用的专用 JSP 标记:cache、repeat 和 process。这些标记打包在称为 weblogic-tags.jar 的标记库 jar 文件中。此 jar 文件包含这些标记的类和标记库描述符 (TLD)。要使用这些标记,请将此 jar 文件复制到包含 JSP 的 Web 应用程序中并引用 JSP 中的标记库。请参阅“开发 WebLogic Server 的 Web 应用程序、Servlet 和 JSP”中的使用自定义 WebLogic JSP 标记(cache、process 和 repeat)。
通过在 weblogic.xml 部署描述符的 jsp-descriptor 元素中将预编译参数设置为 true,可以配置 WebLogic Server 为在部署或重新部署 Web 应用程序时,或者在 WebLogic Server 启动时预编译 JSP。为避免每次服务器启动和定位其他服务器时都重新编译 JSP,请使用 weblogic.jspc 预编译它们,然后将它们放在 WEB-INF/classes 文件夹中,并归档在 .war 文件中。将源文件保留在与归档的 .war 文件分开的独立目录中能够消除因 JSP 依赖其中的一个类文件而引起错误的可能性。有关如何避免 JSP 重新编译的完整说明,请参阅 Avoiding Unnecessary JSP Compilation。
应该基于应用程序所需的服务级协议,将 Servlet 和 JSP 分配给工作管理器。请参阅线程管理。
作为一般规则,应该优化应用程序,以便让它在处理会话持久性和会话时执行尽可能少的任务。以下部分提供了有关如何设计适合您的环境和应用程序的会话管理策略的信息:
Weblogic Server 提供了五种会话持久性机制,它们可以满足不同的应用程序要求。这些会话持久性机制可以在 Web 应用程序层进行配置。为应用程序选择哪种会话管理策略取决于一些实际因素,如 HTTP 会话大小、会话生命周期、可靠性和会话故障转移要求。例如,没有故障转移要求的 Web 应用程序可以作为单个基于内存的会话来维护,而带有故障转移功能的 Web 应用程序可以基于其生命周期和对象大小,作为复制的会话或基于 JDBC 的会话来维护。
纯粹就性能而言,与基于 JDBC 的会话状态持久性相比,内存中的会话持久性总体来说是较好的选择。按照 Session Persistence Performance in BEA WebLogic Server 7.0 的作者的话来说就是:“尽管所有的会话持久性机制都必须考虑数据序列化和反序列化的开销,但数据库交互的额外开销会影响基于 JDBC 的会话持久性的性能,并会导致它与内存内的复制相比性能较差”。但是,基于内存中的会话持久性需要使用 WebLogic 群集,因此,它不是单服务器环境中的选项。
另一方面,使用基于 JDBC 的持久性的环境不需要使用 WebLogic 群集,并且可以在数据库中在较长的时间内维护会话状态。提高基于 JDBC 的会话持久性的一种方法是优化代码,以便让它具有尽可能高的会话状态持久性粒度。可以提高基于 JDBC 的会话持久性的总体性能的其他因素包括:数据库的选择、正确的数据库服务器配置、JDBC 驱动程序和 JDBC 连接缓冲池配置。
配置 WebLogic Server 管理会话的方式是调整应用程序以获得最佳性能的关键部分。请考虑以下几点:
有关详细信息,请参阅“使用会话和会话持久性”中的设置会话管理。
本部分提供有关聚合会话数据的最佳实践。WebLogic Server 根据属性跟踪和复制会话中的更改,所以应该做到以下几点:
例如:如果使用包含所有会话数据的单个大特性,并且仅有其中的 10% 数据有所更改,则必须复制整个属性。这会导致不必要的序列化/反序列化和网络开销。应该将这 10% 的更改会话数据移动到单独特性中。
|