Sun Java System Message Queue 3.7 UR1 管理指南

記憶體管理:在代理程式負載過重時提高穩定性

您可以對每個目標個別配置記憶體管理,或是集中配置整個系統層級 (針對所有目標) 的記憶體管理。

使用實體目標限制

如需有關實體目標限制的資訊,請參閱第 6 章, 管理實體目標

使用系統範圍限制

如果訊息產生器經常使訊息用戶超載,代理程式中可能會累積訊息。代理程式包含一個在記憶體不足情況下,降低產生器速度和將訊息移出使用中記憶體的機制,所以對代理程式可保留的訊息總數目 (和訊息容量) 做出硬式限制是明智之舉。

設定 imq.system.max_countimq.system.max_size 代理程式特性,可控制這些限制。

例如:

imq.system.max_count=5000

以上定義的值,表示代理程式最多只會保留 5000 個未傳送/未確認的訊息。如果傳送額外訊息,則會被代理程式拒絕。如果為永久性訊息,那麼產生器在嘗試傳送訊息時會發生異常。如果為非永久性訊息,代理程式會直接丟棄訊息。

當傳送訊息時傳回異常,用戶端應稍作暫停並試著再傳送一次。(請注意,永遠不會因為代理程式接收訊息失敗而發生異常;所發生的異常都是由傳送端的用戶端所偵測到的異常。)