将 EJB 和 RMI 对象分配到执行队列
要将 EJB object对象分配到已配置的执行队列,可使用 weblogic-ejb-jar.xml 中的新 dispatch-policy 元素。有关详细信息,请参阅 dispatch-policy。
也可以通过 appc 编译器 -dispatchPolicy 标志设置调度策略,不过 BEA 强烈建议使用部署描述符元素。这样的话,如果重新编译 EJB,则在诸如部署的过程中,不会丢失设置。
要将 RMI 对象分配到已配置的执行队列,可使用 rmic 编译器的 -dispatchPolicy 选项。例如:
java weblogic.rmic -dispatchPolicy CriticalAppQueue ...
--------------------------------------------------------------------------------
监视执行线程
要使用管理控制台监视执行线程的状态,请执行下列操作:
1.如果您从未执行过此操作,则请在管理控制台的“更改中心”中单击“锁定并编辑”。
2.在控制台的左侧窗格中,展开“环境”>“服务器”。
3.在“服务器概要”页上,选择要为其配置线程检测行为的服务器实例。
4.选择“监视”>“线程”选项卡。
5.显示该服务器实例上的可用执行队列表。
6.选择要查看其线程信息的执行队列。
7.显示选定执行队列的执行线程表。
--------------------------------------------------------------------------------
分配执行线程以充当套接口读取器
为获得最佳性能,BEA 建议在承载 WebLogic Server 实例的计算机上,使用本地套接口读取器实现而非纯 Java 实现(请参阅线程管理)。但是,如果必须要在主机上使用纯 Java 套接口读取器实现,则可以配置恰当的执行线程数以作为每个服务器实例的套接口读取器线程,从而仍可以提高套接口通信的性能。
ThreadPoolPercentSocketReaders 特性可设置用于从套接口读取消息的执行线程的最大百分比。此特性的最优值是应用程序特定的。默认值是 33,有效范围是 1-99。
分配执行线程以充当套接口读取器线程可增加服务器接受客户端请求的速度和能力。在专门用于从套接口中读取消息的执行线程数和在服务器中执行实际任务的线程数之间,保持这两个数字的平衡是非常重要的。
设置服务器实例的套接口读取器线程数
要使用管理控制台设置从套接口读取消息的执行线程的最大百分比,请执行下列操作:
1.如果您从未执行过此操作,则请在管理控制台的“更改中心”中单击“锁定并编辑”。
2.在控制台的左侧窗格中,展开“环境”>“服务器”。
3.在“服务器概要”页上,选择要为其配置线程检测行为的服务器实例。
4.选择“配置”>“调整”选项卡。
5.在“套接口读取器”字段中指定 Java 读取器线程的百分比。Java 套接口读取器的数目作为执行线程总数的百分比计算(如执行队列的“线程计数”字段所示)。
6.单击“保存”。
7.要激活这些更改,请在“管理控制台”的“更改中心”单击“激活更改”。
在客户端计算机上设置套接口读取器线程数
在客户端计算机上,可以配置运行客户端的 JVM 中的可用套接口读取器线程数。通过在客户端的 java 命令行中定义下列参数可以指定套接口读取器:
-Dweblogic.ThreadPoolSize=value
-Dweblogic.ThreadPoolPercentSocketReaders=value
调整阻塞线程检测行为
WebLogic Server 自动检测执行队列中的线程发生“阻塞”的时间。因为阻塞的线程无法完成其当前工作或接受新工作,所以,服务器每次诊断阻塞的线程时均会记录一条消息。
如果线程在某一设定的时间段内连续工作 (非空闲),WebLogic Server 会将其诊断为阻塞线程。通过更改线程被诊断为阻塞线程之前经过的时间长度,以及更改服务器检查阻塞线程的频率,可以调整服务器的线程检测行为。尽管可以更 改 WebLogic Server 用来确定线程是否阻塞的条件,但是当在特定执行队列中的所有线程都阻塞时,就无法更改设置“警告”和“严重”运行状况的默认行为。有关详细信息,请参阅“配置日志文件和筛选日志消息”中的了解 WebLogic 日志记录服务。
要配置阻塞线程检测行为,请执行下列操作:
1.如果您从未执行过此操作,则请在管理控制台的“更改中心”中单击“锁定并编辑”。
2.在控制台的左侧窗格中,展开“环境”>“服务器”。
3.在“服务器概要”页上,选择要为其配置线程检测行为的服务器实例。
4.在“配置”>“调整”选项卡上,根据需要进行更新:
阻塞线程最长时间 - 服务器实例将线程诊断为阻塞线程之前,该线程必须连续工作的时间(秒)。
阻塞线程计时器间隔 - 服务器实例定期扫描线程,以查看线程连续工作的时间是否达到配置的“阻塞线程最长时间”的时间间隔(秒)。
5.单击“保存”。
6.要激活这些更改,请在“管理控制台”的“更改中心”单击“激活更改”。不是所有的更改都会立刻生效 – 某些更改需要重新启动服务器才能生效。
7.必须重新启动服务器,才能使用新的线程检测行为值。