由於用戶端傳送與接收的「有效負載」訊息以及 Message Queue 本身使用的控制訊息 (例如代理程式確認) 透過相同的用戶端與代理程式連線傳送,因此過量的有效負載流量可能會干擾控制訊息的傳送。若要協助減輕此問題,表 16–5 中所列的連線工廠屬性可讓您管理這兩類訊息的相對流量。這些屬性可分為四種:
確認逾時:指定在丟出異常之前,等待代理程式確認的最長時間 (imqAckTimeout)。
連線流量計數:會限制將有效負載訊息以指定的大小分批次進行傳輸 (imqConnectionFlowCount),以確保可定期傳送任何累積的控制訊息。
連線流量控制:會限制連線上可以保留之擱置的有效負載訊息數 (imqConnectionFlowLimit)。達到限制時,傳送到連線的有效負載訊息會暫停,直到等待使用的訊息數量降到限制以下為止。此功能的使用是由布林值旗標 (imqConnectionFlowLimitEnabled) 所控制。
用戶流量控制:會限制任何單一用戶可以擱置等待使用的有效負載訊息數 (imqConsumerFlowLimit)。(此限制也可以指定為特定佇列目標的特性 consumerFlowLimit。)達到限制時,會暫停傳送有效負載訊息至用戶,直到等待使用的訊息數量 (imqConsumerFlowLimit 以百分比表示) 降到 imqConsumerFlowThreshold 屬性所指定的限制以下為止。這可以防止任何用戶佔用連線讓別人苦等,幫助改善多名用戶之間的負載平衡。
使用這些流量控制技術必須在可靠性與流量之間進行權衡;如需詳細說明,請參閱用戶端執行階段訊息流量調校。