Application Server 支援 JMS 連線池儲存和容錯移轉。Sun Java System Application Server 可自動池儲存 JMS 連線。當 Address List Behavior 屬性為 random (預設) 時,Application Server 會從 JMS 主機清單中隨機選取其主代理程式。發生容錯移轉時,MQ 不需設定即可將負載傳輸至其他代理程式並可保持 JMS 語義不變。
若要指定在連線中斷後,Application Server 是否嘗試重新連線至主代理程式,請選取 [重新連線] 核取方塊。啟用後,如果主代理程式中斷,Application Server 會嘗試重新連線至 JMS 主機清單中的其他代理程式。
啟用 [重新連線] 後,還需指定以下屬性︰
Address List Behavior︰連線嘗試是依循 JMS 主機清單中的位址順序 (priority) 還是依循隨機順序 (random)。如果設定為 Priority,則 Java 訊息服務會嘗試連線至 JMS 主機清單中指定的第一個 MQ 代理程式,並且,當第一個代理程式不可用時,會使用其他代理程式。如果設定為 Random,則 Java 訊息服務會從 JMS 主機清單中隨機選取 MQ 代理程式。如果許多用戶端嘗試使用同一個連線工廠來進行連線,請使用此設定以防止這些用戶端全部嘗試連線至同一個位址。
Address List Iterations︰Java 訊息服務透過 JMS 主機清單反覆運算,以建立 (或重新建立) 連線的次數。值 -1 表示嘗試次數沒有限制。
Reconnect Attempts︰用戶端執行階段嘗試連線 (或重新連線) JMS 主機清單中每個位址的次數。達到此值後,用戶端執行階段將嘗試連線清單中的下一個位址。值 -1 表示重新連線嘗試次數沒有限制 (用戶端執行階段將嘗試連線至第一個位均A直到連線成功)。
Reconnect Interval︰嘗試重新連線之間的間隔秒數。此屬性適用於對 JMS 主機清單中每個位址的嘗試,以及對該清單中連續位址的嘗試。如果該間隔太短,則代理程式將沒有時間恢復。如果該間隔太長,則重新連線會變得遲緩,以至於讓人無法接受。
您可以使用 JMS 連線工廠設定置換這些設定。如需詳細資訊,請參閱「Sun Java System Application Server Enterprise Edition 8.2 管理指南」中的「JMS 連線工廠」。
Application Server 可將訊息隨機傳送至具有相同 ClientID 的 MDB。長期用戶需要 ClientID。
對於其中未配置 ClientID 的非長期用戶,訂閱相同主題的特定 MDB 之所有實例均視為相等。如果將 MDB 部署至 Application Server 的多個實例,則僅一個 MDB 會接收訊息。如果多個不同的 MDB 訂閱相同的主題,則每個 MDB 會有一個實例接收訊息的副本。
若要支援使用相同佇列的多個用戶,請將實體目標的 maxNumActiveConsumers 特性設定為較大的值。如果已設定此特性,則 MQ 可允許多達該數目的 MDB 使用同一佇列中的訊息。訊息會隨機傳送至 MDB。如果將 maxNumActiveConsumers 設定為 -1,則對用戶數目沒有限制。