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 百分比表示,當低於該值時,就可以重新繼續傳送訊息