创建执行队列
执行队列指对于一个或多个已指定的 Servlet、JSP、EJB 或 RMI 对象可用的执行线程的已命名集合。
要使用管理控制台配置新的执行队列,请执行下列操作:
1.如果您从未执行过此操作,则请在管理控制台的“更改中心”中单击“锁定并编辑”。
2.在控制台的左侧窗格中,展开“环境”>“服务器”。
3.在“服务器概要”页中中,选择要为其配置执行队列的服务器实例。
4.选择“配置”>“队列”选项卡并单击“新建”。
5.命名该执行队列并单击“确定”。
6.在“用户定义的执行队列”页上,选择刚创建的执行队列。
7.在执行队列的“配置”选项卡上,修改下列特性或接受系统默认值:
队列长度 - 通常保留队列长度的默认值 65536 条。队列长度是指服务器在队列中能够保持的同时请求的最大数。默认值 65536 是一个很大的请求数;队列中未完成的请求数很少能达到此最大值。
如果达到最大队列长度,则 WebLogic Server 自动将队列长度增加一倍以处理新增的任务。但是要注意,队列中请求数超过 65536 是队列中线程的问题,而不是队列长度本身的问题;请在执行队列中检查是否存在阻塞线程或线程计数是否不足。
队列长度阈值百分比 - 在该服务器指出队列溢出条件之前可以达到的队列长度大小的百分比(从 1 到 99)。低于该阈值百分比的所有实际队列长度大小被视为正常;高于该阈值百分比的大小表示溢出。达到溢出条件时,WebLogic Server 将记录错误消息,并根据“线程数增加”特性的值来增加队列中的线程数,从而减少工作负荷。
“队列长度阈值百分比” 值百分比默认为 90%。在多数情况下,应将值保留为 90% 或近似值,以便处理任何可能需要额外的线程来处理意外的工作请求峰值的情况。记住,请勿将“队列长度阈值百分比”当作一个自动调整参数 - 在正常运行环境下该阈值永远不会触发线程计数的增加。
线程计数 - 分配到此队列的线程数。如果您的工作所需要的线程数不超过 15 个(默认值),则不要更改该特性的值。(有关详细信息,请参阅是否要修改默认线程计数?。)
线程数增加 - WebLogic Server 检测到溢出条件时应添加到此执行队列的线程数。如果您指定增加零个线程(默认值),则服务器会将其运行状态更改为“警告”以响应线程中的溢出条件,但不会分配额外的线程数来减少工作负荷。
注意: 如果 WebLogic Server 为响应溢出条件而增加线程数,则新增的线程数会一直保留在执行队列中直至重新启动服务器。监视错误日志以确定引起溢出条件的原因,并在必要时重新配置线程 计数以阻止未来出现类似的条件。请不要将“线程数增加”和“队列长度阈值百分比”组合起来作为自动调整工具使用;这样做的后果通常是使执行队列分配大于实 际所需的线程数,并因频繁的上下文切换导致性能下降。
最小线程数 - WebLogic Server 应在此执行队列中保留的最小线程数,用来阻止出现不必要的溢出条件。默认情况下,“最小线程数”设置为 5。
最大线程数 - 该执行队列能够拥有的最大线程数,该值将阻止 WebLogic Server 为了响应连续溢出而在队列中创建过高的线程计数。默认情况下,“最大线程数”设置为 400。
8.单击“保存”。
9.要激活这些更改,请在“管理控制台”的“更改中心”单击“激活更改”。不是所有的更改都会立刻生效 – 某些更改需要重新启动服务器才能生效。
10.必须重新启动服务器,才能使用新的线程检测行为值。
修改线程计数
要使用管理控制台修改默认执行队列线程计数,请执行下列操作:
1.如果您从未执行过此操作,则请在管理控制台的“更改中心”中单击“锁定并编辑”。
2.在控制台的左侧窗格中,展开“环境”>“服务器”。
3.在“服务器概要”页上,选择要为其配置线程检测行为的服务器实例。
4.在“配置”>“队列”选项卡上,选择要修改其默认线程计数的执行队列。
注意: 可以只修改服务器的默认执行队列或用户定义的执行队列。
5.确定“线程计数”值,并根据需要增加或减少该值。
6.单击“保存”。
7.要激活这些更改,请在“管理控制台”的“更改中心”单击“激活更改”。不是所有的更改都会立刻生效 – 某些更改需要重新启动服务器才能生效。
8.必须重新启动服务器,才能使用新的线程检测行为值。
调整执行队列的溢出条件
可以配置 WebLogic Server 以检测并访问(可选)默认执行队列或任何用户定义的执行队列中的潜在溢出条件。WebLogic Server 认为,当队列的当前大小达到其最大大小的用户定义百分比时,就有可能发生溢出。当达到该阈值时,服务器会将其运行状态更改为“警告”,并分配(可选)额外 的线程执行队列中的未完成任务,从而减小队列长度。
要自动检测并访问队列中的溢出条件,可配置下列项目:
服务器用来表示溢出条件的阈值。将该值设置为执行队列中已配置的大小(队列长度值)所占的百分比。
检测到溢出时添加到执行队列的线程数。这些额外线程用来减小队列大小,并将队列大小减小到其正常运行的大小。
队列中可用的最小线程数和最大线程数。特别是设置最大线程数可以阻止服务器为响应超载条件而分配过高的线程计数。
要使用 WebLogic Server 管理控制台调整执行队列,请执行下列操作:
1.如果您从未执行过此操作,则请在管理控制台的“更改中心”中单击“锁定并编辑”。
2.在控制台的左侧窗格中,展开“环境”>“服务器”。
3.在“服务器概要”页上,选择要为其配置溢出条件行为的服务器实例。
4.选择“配置”>“队列”选项卡,然后选择要为其配置溢出条件行为的执行队列。
5.修改下列特性以指定服务器实例应如何检测选定队列的溢出条件:
队列长度 - 指定服务器在队列中能够保持的同时请求的最大数。默认值 65536 是一个很大的请求数;队列中未完成的请求数很少能达到此最大值。通常将此“队列长度”值保留为默认值 65536 条。
队列长度阈值百分比 - 在该服务器指出队列溢出条件之前可以达到的队列长度大小的百分比(从 1 到 99)。低于该阈值百分比的所有实际队列长度大小被视为正常;高于该阈值百分比的大小表示溢出。默认情况下,“队列长度阈值百分比”被设置为 90%。
6.要指定该服务器应如何访问选定队列的溢出条件,请修改下列特性:
线程数增加 - WebLogic Server 检测到溢出条件时应添加到此执行队列的线程数。如果您指定增加零个线程(默认值),则服务器会将其运行状态更改为“警告”以响应执行线程中的溢出条件,但不会分配额外的线程数以减少工作负荷。
7.要微调此执行队列的变量线程计数,请修改下列特性:
最小线程数 - WebLogic Server 应在此执行队列中保留的最小线程数,用来阻止出现不必要的溢出条件。默认情况下,“最小线程数”设置为 5。
最大线程数 - 该执行队列能够拥有的最大线程数,该值将阻止 WebLogic Server 为了响应连续溢出而在队列中创建过高的线程计数。默认情况下,“最大线程数”设置为 400。
8.单击“保存”。
9.要激活这些更改,请在“管理控制台”的“更改中心”单击“激活更改”。不是所有的更改都会立刻生效 – 某些更改需要重新启动服务器才能生效。
10.必须重新启动服务器,才能使用新的线程检测行为值。
将Servlet 和 JSP 分配到执行队列
通过在初始化参数中标识执行队列的名称,可以将 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>CriticalAppQueue</param-value> </init-param></servlet>有关在 web.xml 中指定初始化参数的详细信息,请参阅“开发 WebLogic Server 的 Web 应用程序、Servlet 和 JSP”中的创建和配置 Servlet。