Sun Java System Message Queue 3.7 UR1 技術摘要

目標與路由服務

用戶端連線至代理程式後,即可路由訊息及傳送訊息。在此階段中,代理程式會負責建立與管理不同類型的實體目標,確保訊息流量順暢,以及有效使用資源。代理程式使用與路由和目標相關的代理程式特性,以符合應用程式所需的方式來管理這些工作。

請記住,代理程式上的實體目標,是訊息在傳送到訊息用戶之前所儲存的記憶體位置。實體目標有四種:

管理目標

您可以使用 imqcmd 公用程式管理目標。管理目標包括下列一項或多項工作:

管理作業會隨所管理的目標類型而變更:管理員建立的目標、自動建立的目標、暫時目標或停用的訊息佇列。例如,暫時目標不需要明確銷毀,自動建立的特性會經由代理程式配置特性配置,並套用到該代理程式上所有自動建立的目標。

配置實體目標

為了最佳化效能,您可以在建立或更新實體目標時設定特性。可以設定的特性包括下列項目:

您也可以針對佇列目標配置備份用戶的最大數目,並且可以 (針對叢集代理程式) 指定是否要優先傳送到本機佇列。

您也可以配置停用的訊息佇列的限制和運作方式。不過請注意,此佇列的預設特性和標準佇列的預設特性不同。

管理記憶體

目標可能使用大量資源 (取決於它們處理的訊息數目和大小,以及註冊的用戶數目和期限),因此必須密切管理這些資源,以確保良好的訊息傳送服務效能與可靠性。

您可以設定特性,以避免代理程式有過多的內送訊息,進而避免代理程式記憶體不足。代理程式使用三層記憶體保護,以在資源不足時維持訊息傳送服務作業:目標限制、系統範圍限制和系統記憶體臨界值。理想情況下,如果目標限制和系統範圍限制設定適當,則應絕對不會到達嚴重的系統記憶體臨界值。

目標訊息限制

您可以設定目標屬性,以管理每個目標的記憶體和訊息流量。例如,您可以指定允許用於目標的產生器最大數目、目標中允許的最大訊息數量 (或大小),以及每個單一訊息的最大大小。

您也可以指定到達這類限制時,代理程式應採取的反應措施:減緩產生器、捨棄最舊的訊息、捨棄最不重要的訊息,或拒絕最新的訊息。

系統範圍訊息限制

您也可以使用特性,設定套用到代理程式上所有目標的限制:可以指定訊息總數和所有訊息使用的記憶體。如果達到整個系統的任何訊息限制,代理程式就會拒絕新的訊息。

系統記憶體執行緒

最後,可以使用特性來設定臨界值,當到達臨界值時,代理程式會採取越來越嚴格的動作,以防止記憶體超過負載。此動作取決於記憶體資源的狀態:green (大量記憶體可用)、yellow (代理程式記憶體正在減少)、orange (代理程式記憶體不足),以及 red (代理程式無記憶體可用)。如果代理程式記憶體的狀態從 green 變為 red,代理程式會採取越來越嚴格的動作: