Sun Java System Message Queue 3.7 UR1 管理指南

可靠性和流控制

表 16–5 列出了用于可靠性和流控制的连接工厂属性。

表 16–5 用于可靠性和流控制的连接工厂属性

属性 

类型 

默认值 

描述 

imqAckTimeout

字符串 

0

等待代理确认的最长时间(以毫秒为单位),超过该时间后,将抛出异常 

值为 0 表示无超时(无限期等待)。


注 –

在某些情况下,此值过低可能会导致提前超时:例如,第一次使用安全 (SSL) 连接对照 LDAP 用户系统信息库来验证用户时需要 30 秒以上的时间。


imqConnectionFlowCount

整数 

100

计量批中有效负荷消息的数量 

达到此消息数后,会暂停向客户端传送有效负荷消息,以便传送堆积的所有控制消息。当收到客户端运行时环境通知时,将恢复有效负荷消息传送,直到再次达到该消息数为止。 

值为 0 将禁用消息传送计量,这可能会因为有效负荷消息流量过大而导致 Message Queue 控制消息被阻塞。

imqConnectionFlowLimitEnabled

布尔值 

false

是否在连接级别限制消息流? 

imqConnectionFlowLimit

整数 

1000

每个连接中可以传送和缓冲(以便使用)的最大消息数 

如果待处理的未使用有效负荷消息数(受流计量的约束,流计量由 imqConnectionFlowCount 控制)超过此限制,连接中的消息传送将会停止。 仅当待处理的消息数低于该限制时,才会恢复传送。这样可防止客户端因待处理消息太多而过载,从而导致内存不足。

如果 imqConnectionFlowLimitEnabled false,则忽略此属性。

imqConsumerFlowLimit

整数 

100

每个使用方可以传送和缓冲(以便使用)的最大消息数 

对于给定的使用方,如果待处理的未使用有效负荷消息数超过此限制,将停止向该使用方传送消息。 仅当该使用方的待处理消息数低于 imqConsumerFlowThreshold 指定的百分比时,才会恢复传送。 使用此限制可以改进多个使用方之间的负载平衡,并防止同一连接上的任一使用方抢占其他使用方的流量。

如果为队列自身的 consumerFlowLimit 属性设置的值较低,则该值可以覆盖此限制(请参见第 15 章,物理目的地属性参考)。另请注意,针对连接上所有使用方的消息传送受 imqConnectionFlowLimit 指定的整体限制的约束。

imqConsumerFlowThreshold

整数 

50

每个使用方可以在客户端运行时环境中缓冲的消息数(以 imqConsumerFlowLimit 百分比的形式指定),低于该百分比时将恢复消息传送。