|
将“已启用异步模式”特性设置为 false,并且服务质量为“恰好一次”时,批处理大小 特性可用于通过增加每个事务(批处理)的消息数来减少事务提交数。桥实例的最佳批处理大小取决于使用的 JMS 提供程序、硬件、操作系统和应用程序环境中的其他因素的组合。请参阅“管理控制台联机帮助”中的配置事务属性。
将“已启用异步模式”特性设置为 false,并且服务质量为“恰好一次”时,BatchInterval特性用于调整桥在转发批处理消息之前等待达到批处理限量的时间长度。桥实例的最佳批处理间隔取决于使用的 JMS 提供程序、硬件、操作系统和应用程序环境中的其他因素的组合。例如,如果队列不是很忙,则桥可能会频繁停止转发,以便等待达到批处理限量,这表明需要减小 BatchInterval 特性的值。请参阅“管理控制台联机帮助”中的配置事务属性。
“恰好一次”服务质量的效果可能显著高于或低于“至多一次”和“至少一次”。
使用恰好一次服务质量时,桥必须向两个 JMS 服务器经历两个阶段的提交以便确保事务语义,此操作的开销可能非常大。但与其他服务质量不同的是,消息传递桥可以使用恰好一次服务一起批处理多项操作。
可能需要对此参数进行试验,才能得到最佳性能。例如,如果队列不是很忙,或者使用的是非持久性消息,则执行恰好一次批处理的优势可能会很小。请参阅“管理控制台联机帮助”中的配置消息传递桥实例。
可以使用同一目标部署多个消息传递桥实例。完成此操作后,消息传递桥的所有实例都可以同时运行,这样可以提高消息吞吐量。如果使用多个消息传递桥实例,则转发消息的顺序会不同于消息在源目标中的顺序。请参阅“管理控制台联机帮助”中的创建消息传递桥实例。
为每个定位于服务器实例的消息传递桥实例提供一个线程,这是消息传递桥配置通则。可用下列某个选项来确保充足的线程可用于环境:
weblogic.jms.MessagingBridge 类配置工作管理器。请参阅“配置 WebLogic Server 环境”中的了解工作管理器。Thread Pool Size属性。为了避免与服务器中的默认执行线程缓冲池发生冲突,消息传递桥分享单独的线程缓冲池。此线程缓冲池仅可用于同步模式中(未设置“已启用异步模式”)。在异步模式中,消息传递桥运行在由 JMS 提供程序为源目标创建的线程中。不赞成在 WebLogic Server 9.0 中使用。
如果桥正在监听某个主题,并且能够接受在桥不转发消息时允许丢失消息,则禁用已启用持久性标志可以确保无法传递的消息不会积聚在源服务器的存储中。禁用该标志也会使消息变成非持久性消息。请参阅“管理控制台联机帮助”中的配置消息传递桥实例。
如果消息传递桥源或目标是 WebLogic 目标,则将消息传递桥部署到 Weblogic 目标所在的同一 WebLogic 服务器中。用消息传递桥目标之一定位消息传递桥,会消除关联网络和序列化开销。在高吞吐量应用程序中(尤其是在消息为非持久性消息时),此类开销可能会很显著。
已启用异步模式特性用于确定消息传递桥是用 JMS MessageListener 接口异步接收消息,还是用同步 JMS API 接收消息。在大多数情况下,Asynchronous Enabled特性值取决于应用程序环境所需的 QOS,如表 15-1 中所示:
|
请参阅“管理控制台联机帮助”中的配置消息传递桥实例。
如果服务质量为恰好一次,则会对消息传递桥性能产生显著影响。消息传递桥对每条消息都会启动一项新事务,并且在事务所涉及的两个 JMS 服务器上分两个阶段执行提交。由于两阶段提交通常是消息传递桥事务中开销最大的部分,因此随着处理的消息增加,消息传递桥性能将逐渐下降。
|