WebLogic Server 性能及调整

     上一页  下一页    在新窗口中打开目录     
在此处开始内容

调整消息驱动 Bean

下列部分提供有关消息驱动 Bean(Message-Driven Bean,简称 MDB)的调整及最佳实践信息:

 


使用事务批处理

MDB 事务批处理允许在一个容器管理的事务中处理多条 JMS 消息。批处理通过多条消息分摊事务成本,若正确使用批处理,将能降低甚至消除 2PC 与 1PC 处理之间的吞吐量差异。请参阅“WebLogic Enterprise JavaBean 编程”中的 MDB 的事务批处理

注意: 使用批处理时,可能需要减少并发 MDB 实例的数目。如果有太多的 MDB 实例可用,那么消息将以并行方式,而非批处理方式进行处理。请参阅 MDB 线程管理
注意: 批处理一般会增加吞吐量,但也可能增加滞后(单条消息完成其 MDB 处理所用的时间)。

 


MDB 线程管理

MDB 的线程管理根据并发数(可以同时活动的 MDB 实例数)进行描述。下列部分提供有关 MDB 并发的信息:

确定并发的 MDB 数

表 10-1 提供有关如何确定服务器实例上并发运行的 MDB 实例数的信息。

表 10-1 确定 WebLogic Server MDB 的并发 
工作管理器或执行队列的类型
线程
默认工作管理器或无约束的工作管理器
因自调整性而异,上限为“最小”(max-beans-in-free-pool,16)
默认工作管理器,已禁用自调整性
最小 (default-thread-pool-size/2+1, max-beans-in-free-pool)

注意: 这也是 WebLogic Server 8.1 默认的线程缓冲池并发算法

自定义执行队列
最小 (execute-queue-sizemax-beans-in-free-pool)
带约束的自定义工作管理器
因自调整性而异,在 min-thread-constraint 与“最小”(max-threads-constraintmax-beans-in-free-pool) 之间

已启用批处理的事务 MDB 为每个部署的 MDB 创建专用轮询线程。此轮询线程不是从 dispatch-policy 指定的缓冲池分配的,它是其他所有运行在系统的线程之外的一种全新线程。请参阅使用事务批处理

选择并发策略

下列部分提供有关为应用程序选择并发策略的常规信息:

注意: 每一种应用程序都是唯一的,请根据应用程序在环境中的执行情况选择并发策略。

 


使用外部供应商 MDB

下列部分提供了在使用外部供应商 MDB 时,有关 WebLogic Server 行为的信息:

确定外部 MDB 的并发

当使用外部 MDB 时,WebLogic Server 可确定并发,如表 10-2 所示。

表 10-2 确定外部供应商 MDB 的并发
调整因素
信息引用
队列
与 WebLogic MDB 的算法相同
主题:非事务
并发始终是一个。
主题:事务
与 WebLogic MDB 的算法相同

使用外部 MDB 时的线程使用率

下列部分提供了当 WebLogic Server 与外部供应商 MDB 互操作时,如何分配线程的信息:

注意: 当使用外部事务 MDB 时,某些外部供应商要求每个并发 MDB 实例都有一个永久分配的线程。这些线程从 dispatch-policy 指定的缓冲池中提取,并且在取消部署 MDB 后,才返回到缓冲池。因为这些线程不是共享的,MDB 可能缺乏相同缓冲池中的其他资源。在这种情况下,可能需要增加缓冲池中的线程数。

  返回顶部       上一页  下一页