1.在weblogic8.1中,执行处理是在多个执行队列中进行的。根据优先级和顺序要求,
不同类别的工作在不同的队列中执行以避免死锁。
除了默认执行队列 weblogic.kernel.default 之外,
还有一些专门用于内部管理流量的预先配置好的队列,如 weblogic.admin.HTTP 和 weblogic.admin.RMI。
用户可以通过修改默认队列中的线程数来控制线程的使用,
还可以配置自定义执行队列以确保特定的应用程序可以访问固定的执行线程数,而不管整体系统负载如何。
2.在weblogic9.0以后版本中,bea推荐使用workmanager,工作管理器,WebLogic Server 现在使用一个线程缓冲池,
所有类型的工作都在此缓冲池中执行。
WebLogic Server 会根据您定义的规则以及运行时规格(包括执行请求所耗的实际时间,以及请求进出缓冲池的速率)确定工作的优先级。
公用线程缓冲池会自动更改其大小以最大化吞吐量。
队列随时监视吞吐量,并根据历史记录确定是否调整线程数。
例如,如果历史吞吐量统计信息表明较大的线程数提高了吞吐量,则 WebLogic 会增大线程数。
同样,如果统计信息表明较少的线程数没有降低吞吐量,则 WebLogic 会减小线程数。
这种新策略使管理员分配处理资源和管理性能变得更容易,从而避免了配置、监视和调整自定义执行队列所涉及的工作和复杂性。
3.如果执行队列使用不当,会造成执行队列之间的线程利用不均衡,有的执行队列繁忙,有的执行队列很闲。
因此只有当特别需要保证关键应用的性能时,才开专用的执行队列,并且在配置中予以指定。比如对某些servlet、jsp特殊使用某个执行队列。
4.分配执行队列
通过在初始化参数中标识执行队列的名称,
可以将 Servlet 或 JSP 分配到一个已配置的执行队列中。
初始化参数属于 Servlet 或 JSP 的部署描述符文件 web.xml 的 init-param 元素。
要分配执行队列,需要输入队列名称作为 wl-dispatch-policy 参数的值,如下面的示例所示:
<servlet>
<servlet-name>MainServlet</servlet-name>
<jsp-file>/myapplication/critical.jsp</jsp-file>
<init-param>
<param-name>wl-dispatch-policy</param-name>
<param-value>执行队列名</param-value>
</init-param>
</servlet>
将 EJB 和 RMI 对象分配到执行队列
要将 EJB object对象分配到已配置的执行队列,
可使用 weblogic-ejb-jar.xml 中的新 dispatch-policy 元素。有关详细信息,请参阅 dispatch-policy。
也可以通过 appc 编译器 -dispatchPolicy 标志设置调度策略,不过 BEA 强烈建议使用部署描述符元素。
这样的话,如果重新编译 EJB,则在诸如部署的过程中,不会丢失设置。
要将 RMI 对象分配到已配置的执行队列,可使用 rmic 编译器的 -dispatchPolicy 选项。例如:
java weblogic.rmic -dispatchPolicy 执行队列名 ...