Message Queue 4.0 是僅支援 Application Server 9 PE 的次要發行版本。它包含數項新功能、一些增強功能,以及錯誤修正。本節說明此發行版本的新功能:
4.0 版推出的其中一個變更雖然次要,但可能造成重大改變,亦即停用以指令行指定密碼的選項。因此,您必須如已停用的密碼選項中所述,將所有密碼儲存在檔案中,或在提示時輸入密碼。
Message Queue 4.0 中已增加符合 Java Management Extensions (JMX) 規格,且可用於配置與監視 Message Queue 代理程式的新 API。您可以使用此 API,從 Java 應用程式內以程式設計方式配置並監視代理程式功能。在 Message Queue 的舊版中,您只能從指令行管理公用程式或從 [管理主控台] 存取這些功能。
如需更多資訊,請參閱「Sun GlassFish Message Queue 4.4 Developer’s Guide for JMX Clients」。
Message Queue 4.0 推出對用戶端執行階段記錄連線與階段作業相關事件的支援。
如需有關用戶端執行階段記錄以及如何加以配置的資訊,請參閱「Java Dev Guide」的第 137 頁。
Message Queue 4.0 推出的事件通知 API,可讓用戶端執行階段通知應用程式有關連線狀態的變更。連線事件通知可讓 Message Queue 用戶端偵聽關閉事件與重新連線事件,並根據通知類型與連線狀態採取適當的動作。例如,當發生容錯移轉且用戶端重新連線至其他代理程式時,應用程式最好清除作業事件狀態,並進行新的作業事件。
如需有關連線事件以及如何建立事件偵聽程式的資訊,請參閱「Java Dev Guide」的第 96 頁。
在 Message Queue 4.0 中,指令公用程式 (imqcmd) 已增加新的子指令及數個指令選項,可讓管理員靜止代理程式、在指定間隔之後關閉代理程式、銷毀連線,或設定 Java 系統特性 (例如連線相關特性)。
靜止代理程式會使其進入無訊息狀態,允許在關閉或重新啟動代理程式之前清空訊息。您無法向靜止中的代理程式建立新連線。若要靜止代理程式,請如下輸入指令。
imqcmd quiesce bkr -b Wolfgang:1756
若要在指定間隔後關閉代理程式,請如下輸入指令。(時間間隔會指定代理程式關閉前的等候秒數)。
imqcmd shutdown bkr -b Hastings:1066 -time 90
若指定時間間隔,代理程式就會記錄一則訊息,指示何時將會關閉。例如,
Shutting down the broker in 29 seconds (29996 milliseconds) (在 29 秒後關閉代理程式,29996 毫秒)
當代理程式等候關閉時,其運作方式會有以下影響。
會繼續接受管理 JMS 連線。
不會接受任何新的 JMS 連線。
現有的 JMS 連線會繼續運作。
此代理程式無法接管強化代理程式叢集中的其他代理程式。
imqcmd 公用程式不會封鎖,它會向代理程式傳送關閉請求並立即返回。
若要銷毀連線,請如下輸入指令。
imqcmd destroy cxn -n 2691475382197166336
使用指令 imqcmd list cxn 或 imqcmd query cxn 以取得連線 ID。
若要透過 imqcmd 設定系統特性,請使用新的 –D 選項。這在設定或置換 JMS 連線工廠特性或連線相關的 Java 系統特性時,會很有用。例如︰
imqcmd list svc -secure -DimqSSLIsHostTrusted=true imqcmd list svc -secure -Djavax.net.ssl.trustStore=/tmp/mytruststore -Djavax.net.ssl.trustStorePassword=mytrustword
如需有關 imqcmd 指令的完整語法資訊,請參閱「Sun GlassFish Message Queue 4.4 Administration Guide」中的第 16 章「Command Line Reference」。
在 Message Queue 4.0 中,資料庫管理者公用程式 imqdbmgr 已新增 query 子指令。此子指令可用以顯示關於 JDBC 資料存放區的資訊,包含資料庫版本、資料庫使用者,以及是否已建立資料庫表格。
以下是該指令所顯示之資訊的範例。
imqdbmgr query |
[04/Oct/2005:15:30:20 PDT] Using plugged-in persistent store: version=400 brokerid=Mozart1756 database connection url=jdbc:oracle:thin:@Xhome:1521:mqdb database user=scott Running in standalone mode. Database tables have already been created. |
在 Message Queue 4.0 中,現在支援 Apache Derby 10.1.1 版作為 JDBC 資料存放區提供者。
Message Queue 4.0 已變更用於最佳化與支援未來增強功能的 JDBC 資料存放區。因此,400 版增加了 JDBC 資料存放區格式。請注意,Message Queue 4.0 中的檔案資料存放區版本仍為 370,因為未對其進行任何變更。
Message Queue 4.0 增加了兩個新特性,可對置於停用訊息佇列中的所有訊息進行設定。
JMS_SUN_DMQ_PRODUCING_BROKER 表示產生訊息的代理程式。
JMS_SUN_DMQ_DEAD_BROKER 表示將訊息標記為停用的代理程式。
自 Message Queue 4.0 起,用戶端連線工廠特性 imqSSLIsHostTrusted 的預設值為 false。若應用程式相依於之前的預設值 true,即需要重新配置並將特性明確設定為 true。
當代理程式配置為使用自我簽署的憑證時,您可以選擇信任主機。此時,除了指定連線應使用基於 SSL 的連線服務 (使用 imqConnectionType 特性),還應該將 imqSSLIsHostTrusted 特性設定為 true。
例如,若要在代理程式使用自我簽署的憑證時安全地執行用戶端應用程式,請使用如下的指令。
java -DimqConnectionType=TLS -DimqSSLIsHostTrusted=true ClientAppName
若要在代理程式使用自我簽署的憑證時安全地使用指令公用程式 (imqcmd),請使用類似如下的指令 (用於列出連接器服務)。
imqcmd list svc -secure -DimqSSLIsHostTrusted=true