Sun Java System Message Queue 4.1 版本說明

第 1 章 Sun Java System Message Queue 4.1 版本說明

版本 4.1

文件號碼 820-3194

這些版本說明包含 Sun Java™ System Message Queue 4.1 發行時所提供的重要資訊。其中包括新增功能和增強功能、已知的問題與限制以及其他資訊。開始使用 Message Queue 之前,請先閱讀此文件。這些版本說明也包含有關 Message Queue 4.0 版的資訊;請參閱關於 Message Queue 4.0,以取得有關該發行版本所推出之功能的資訊。

您可以在 Sun Java System Message Queue 文件網站找到此版本說明的最新版本。請在安裝與設定軟體之前瀏覽此網站,並定期檢視最新版本說明與產品文件。

此版本說明包含下列各節︰

本文件中提供了協力廠商 URL 以供參考,另亦提供其他相關的資訊。

Sun 對本文件中提到的協力廠商網站的可用性不承擔任何責任。Sun 對於此類網站或資源中的 (或透過它們所取得的) 任何內容、廣告、產品或其他材料不做背書,也不承擔任何責任。對於因使用或依靠此類網站或資源中的 (或透過它們所取得的) 任何內容、產品或服務而造成的或連帶產生的實際或名義上之損壞或損失,Sun 概不負責,也不承擔任何責任。

版本說明修訂歷程

下表列出 Message Queue 產品所有 4.x 版的發行日期,並說明與每個發行版本相關的主要變更。

表 1–1 修訂歷程

日期 

對變更的說明 

2006 年 5 月 

Message Queue 4.0 版此文件的初版。 

2007 年 1 月 

Message Queue 4.1 Beta 版此文件的初版。增加有關 JAAS 支援的說明。 

2007 年 4 月 

Message Queue 4.1 Beta 版此文件的再版。增加高可用性功能。 

2007 年 9 月 

正式版文件的第三版。增加有關 Java Enterprise System Monitoring Framework 支援、固定的 C 連接埠、錯誤修正及其他功能的說明。 

關於 Message Queue 4.1

Sun Java System Message Queue 為全方位功能的訊息服務,可提供符合 Java Messaging Specification (JMS) 1.1 規格且可靠的非同步訊息傳送。此外,Message Queue 還提供多種 JMS 規格以外的功能,以滿足大型企業的使用需求。

Message Queue 4.1 版增加對高可用性、Java 認證與授權服務 (JAAS)、使用固定的 C 連接埠,以及 Java Enterprise System Monitoring Framework 的支援。同時也增加了一些次要的增強功能和錯誤修正。本節包含下列資訊。

如需有關 Message Queue 4.0 中推出之功能的資訊,請參閱關於 Message Queue 4.0

4.1 版的新增功能

Message Queue 4.1 推出高可用性 (資料與服務可用性) 代理程式叢集、JAAS 支援以及各種其他次要的功能。本節將說明這些功能,並提供更多參考資訊供您使用。

高可用性

Message Queue 4.1 推出高可用性叢集,在提供服務可用性的同時,還提供資料可用性。它會在用戶端失去與高可用性代理程式的連線時,自動重新連線至叢集中的其他代理程式。提供新連線的代理程式會接管故障代理程式的永久性資料與狀態,並繼續為故障代理程式用戶端提供不間斷服務。您可以透過安全連線執行高可用性代理程式。

高可用性代理程式需要使用高可用性資料庫 (HADB)。若不具備此類資料庫或資料可用性對您而言不重要,則可繼續使用傳統叢集,提供自動重新連線與服務可用性。

配置高可用性代理程式很簡單:為叢集中的每個代理程式指定下列種類的代理程式特性。

若要使用此項功能,必須執行下列作業:

  1. 安裝高可用性資料庫。

  2. 安裝 JDBC 驅動程式的 .jar 檔案。

  3. 為高可用性永久存放區建立資料庫模式。

  4. 針對叢集中每個代理程式的高可用性,設定相關特性。

  5. 啟動叢集中的每個代理程式。

如需有關高可用性的概念性說明,以及它與傳統業集的對比,請參閱「Sun Java System Message Queue 4.1 Technical Overview」中的第 4 章「Broker Clusters」。如需有關高可用性的程序性資訊與參考資訊,請參閱「Sun Java System Message Queue 4.1 Administration Guide」中的第 8 章「Broker Clusters」「Sun Java System Message Queue 4.1 Administration Guide」中的「Cluster Configuration Properties」

如果您搭配 Message Queue 4.0 版使用 HADB 資料庫,且需要使用高可用性叢集,您可以使用 dbmgr 公用程式升級為共用 HADB 存放區。請參閱代理程式叢集,以取得更多資訊。

JAAS 支援

除了內建檔案式和 LDAP 式認證機制,Message Queue 也支援 Java 認證與授權服務 (JAAS),可讓您將各種服務外掛到代理程式,以認證 Message Queue 用戶端。本節說明代理程式提供給 JAAS 相容認證服務的資訊,並說明如何配置代理程式使用這類服務。

JAAS API 不在本文件的論述範疇內。如需瞭解更多資訊,請參閱下列資訊來源。

JAAS API 是 J2SE 的核心 API,因此是 Message Queue 執行階段環境不可或缺的一部分。JAAS 會在應用程式與認證機制之間定義一個抽象層,允許外掛所需的機制,而無須變更應用程式的程式碼。對於 Message Queue 服務而言,此抽象層位於代理程式 (應用程式) 與認證提供者之間。藉由設定某些代理程式特性,可以在不中斷或變更代理程式的程式碼情況下,外掛任何 JAAS 相容認證服務並升級此服務。

若使用 JAAS 式認證,便可使用 JMX 用戶端管理代理程式,但在啟動代理程式之前,必須手動設定 JAAS 支援 (藉由設定與 JAAS 相關的代理程式特性)。您無法使用 JMX API 變更這些特性。

JAAS 的元素

圖 1–1 說明了 JAAS 的基本元素:JAAS 用戶端、JAAS 相容認證服務與 JAAS 配置檔案。

圖 1–1 JAAS 元素

本圖說明 JAAS 相容認證所需的元素。圖形的介紹文字可解釋圖形內容。

下一節說明 Message Queue 服務如何使用這些元素,以提供 JAAS 相容認證。

JAAS 與 Message Queue

下圖說明 Message Queue 代理程式如何使用 JAAS。該圖說明的 JAAS 模型實作比上圖所示更為複雜。

圖 1–2 Message Queue 使用 JAAS 的方式

該圖說明 JAAS 相容認證如何搭配 Message Queue 使用。圖形之後的文字說明其內容。

如同較簡單的範例所示,此認證服務層與代理程式是分開的。認證服務包含一或多個登入模組 (LoginModule),並視需要包含其他認證模組。執行登入模組的 Java 虛擬機器與執行代理程式的 Java 虛擬機器相同。Message Queue 代理程式被登入模組視為 LogInContext,並藉由屬於代理程式執行階段程式碼的 CallBackHandler 與登入模組通訊。

認證服務也提供 JAAS 配置檔案 (包含登入模組的項目)。配置檔案會指定使用模組的順序,以及某些使用條件。啟動代理程式時,JAAS 會依 Java 系統特性 java.security.auth.login.config 或 Java 安全性特性檔案找出配置檔案。接著會根據代理程式特性 imq.user_repository.jaas.name 的值,選取 JAAS 配置檔案中的項目。此項目會指定認證將使用的登入模組。如圖所示,代理程式可使用多個登入模組。(圖 1–3 說明了配置檔案與登入模組以及代理程式之間的關係。)

Message Queue 用戶端完全不會感受到代理程式使用 JAAS 外掛認證服務。用戶端會如同往常繼續連線至代理程式,並傳遞使用者名稱與密碼。而代理程式會使用回呼處理程式將此資訊傳遞至認證服務,再由服務使用該資訊認證使用者並傳回結果。認證一旦成功,代理程式便會授權連線;如果失敗,用戶端執行階段會傳回用戶端必須處理的 JMS 安全性異常。

Message Queue 用戶端經過認證之後,如果需要進一步的授權,則代理程式會如同往常進行;它會參考存取控制檔案,決定是否授權已認證的用戶端以執行所負責的動作:存取目標、使用訊息、瀏覽佇列等。

設定 JAAS 相容認證

設定 JAAS 相容認證的步驟,包含設定代理程式和系統特性以選取此認證類型、指定配置檔案的位置,以及指定將使用的登入模組項目。

本節說明 JAAS 用戶端、登入模組以及 JAAS 配置檔案之間如何相互關聯,接著說明設定 JAAS 相容認證所需的程序。下圖說明配置檔案、登入模組與代理程式之間的關係。

圖 1–3 設定 JAAS 支援

本圖說明 JAAS 相關檔案之間的關係。圖形之後的文字說明其內容。

如圖所示,JAAS 配置檔案 MyJAASCFile.config 包含數個登入模組的參照,共同組成一個進入點。代理程式會藉由查詢 Java 系統特性 java.security.auth.login.config 或 Java 安全性特性檔案,以找出配置檔案。決定要使用的登入模組時須查詢代理程式特性 imq.user_repository.jaas.name,該特性會指定配置檔案中的所需項目。這些模組的類別位於 lib/ext 目錄中。

若要設定 JAAS 對 Message Queue 的支援,您必須完成下列步驟。(在開發環境中,這些步驟可能是由開發人員完成。在生產環境中,管理員會接管部分此類作業。)

  1. 建立可實作認證服務的一或多個登入模組類別。以下列出代理程式支援的 JAAS 回呼類型。

    javax.security.auth.callback.LanguageCallback

    代理程式使用此回呼,將執行代理程式所在的語言環境傳遞給認證服務。此值可用於本土化。

    javax.security.auth.callback.NameCallback

    代理程式使用此回呼,將請求連線時由 Message Queue 用戶端所指定的使用者名稱,傳遞至認證服務。

    javax.security.auth.callback.TextInputCallback

    代理程式使用此回呼,在 TextInputCallback.getPrompt()imq.authentication.type 時,將 imq.authentication.type 的值指定給認證服務。現在此欄位唯一可能的值為 basic。這表示 Base-64 密碼編碼。

    javax.security.auth.callback.PasswordCallback

    代理程式使用此回呼,將請求連線時由 Message Queue 用戶端所指定的密碼,傳遞至認證服務。

    javax.security.auth.callback.TextOutputCallback

    代理程式使用此回呼將文字輸出記錄到代理程式記錄檔,以提供記錄服務給認證服務。回呼的訊息類型 ERRORINFORMATIONWARNING 分別對映至代理程式的記錄層級 ERRORINFOWARNING

  2. 建立包含參照登入模組類別之項目的 JAAS 配置檔案,並將此檔案的位置指定給 Message Queue 管理員。(該檔案可位於遠端,並可由 URL 指定其位置。)

  3. 記下 JAAS 配置檔案中參照登入實作類別的項目名稱。

  4. 將實作登入模組的類別歸檔為 jar 檔案,並將 jar 檔案置於 Message Queue 的 lib/ext 目錄中。

  5. 配置與 JAAS 支援相關的代理程式特性。這些特性說明於表 1–2 中。

  6. 設定下列系統特性,以指定 JAAS 配置檔案的位置。

    java.security.auth.login.config= JAAS_Config_File_Location

    例如,您可以在啟動代理程式時指定配置檔案。

    imqbrokerd -Djava.security.auth.login.config=JAAS_Config_File_Location

    還有其他方法可指定 JAAS 配置檔案的位置。如需其他資訊,請參閱

    http://java.sun.com/j2se/1.5.0/docs/guide/security/jaas/tutorials/LoginConfigFile.html

下表列出設定 JAAS 支援所需的代理程式特性。

表 1–2 JAAS 支援的代理程式特性

特性 

說明 

imq.authentication.type

設定為 basic,以表示為 Base-64 密碼編碼。此為 JAAS 認證的唯一允許值。

imq.authentication.basic.user_repository

設定為 jaas,以指定 JAAS 認證。

imq.accesscontrol.type

設定為 file

imq.user_repository.jaas.name

設定為參照需要用做認證機制之登入模組的所需項目 (位於 JAAS 配置檔案中) 名稱。這是您在步驟 3 中記下的名稱。

imq.user_repository.jaas.userPrincipalClass

此特性由 Message Queue 存取控制所使用,會指定登入模組中的 java.security.Principal 實作類別,讓代理程式用來擷取在 Message Queue 存取控制檔案中表示使用者實體的主體名稱。若未指定,則會改用請求連線時從 Message Queue 用戶端傳遞的使用者名稱。

imq.user_repository.jaas.groupPrincipalClass

此特性由 Message Queue 存取控制所使用,會指定登入模組中的 java.security.Principal 實作類別,讓代理程式用來擷取在 Message Queue 存取控制檔案中表示使用者實體的主體名稱。若未指定,則會忽略 Message Queue 存取控制檔案中的群組規則 (若有的話)。

永久存放區格式變更

Message Queue 4.1 版將 JDBC 存放區變更為支援高可用性。因此,JDBC 存放區版本會增加為 410。JDBC 存放區版本 350、370 和 400 會自動遷移至 410 版本格式。

請注意,檔案式永久存放區版本由於沒有任何變更,因此還是 370。

代理程式配置

特性 IMQ_DEFAULT_EXT_JARS 已增加至 imqenv.conf 檔案。您可以設定此特性,以指定在啟動代理程式時,將外部 .jar 檔案的路徑名稱納入 CLASSPATH。若使用此特性指定外部 .jar 檔案的位置,則不需要再將這些檔案複製到 lib/ext 目錄。外部 jar 可參照 JDBC 驅動程式或 JAAS 登入模組。下列指令範例指定 jdbc 驅動程式的位置。

IMQ_DEFAULT_EXT_JARS=/opt/SUNWhadb4/lib/hadbjdbc4.jar:/opt/SUNWjavadb/derby.jar

JES 監視架構支援

Message Queue 支援 Sun Java Enterprise System (JES) 監視架構,可使用常用圖形式介面監視 Java Enterprise System 元件。此介面利用名為「Sun Java System Monitoring Console」的網路型主控台實作。如果您執行 Message Queue 和其他 JES 元件,可能會發現使用單一介面管理所有元件比較方便。

JES 監視架構會定義所有 JES 元件產品所使用的共用資料模式 (Common Data Model, CMM)。此模式可以統一的方式集中檢視所有 JES 元件。Message Queue 可將以下物件交給 JES 監視架構:

這些物件會各自對映一個 CMM 物件。您可使用 JES 監視主控台監視這些物件的屬性。在執行階段時,管理員可使用主控台檢視效能統計、建立自動監視的規則,以及確認警示。如需有關將 Message Queue 物件對映至 CMM 物件的詳細資訊,請參閱「Sun Java Enterprise System 監視指南」。

若要啟用 JES 監視,必須執行下列作業:

  1. 根據「Sun Java Enterprise System 安裝指南」中提供的指示,在部署中安裝並配置所有元件 (Message Queue 和其他元件)。

  2. 如「Sun Java Enterprise System 監視指南」中所述,為所有監視的元件啟用並配置監視架構。

  3. 如「Sun Java Enterprise System 監視指南」中所述,在一部單獨的主機上安裝監視主控台、啟動主代理程式,然後再啟動 Web 伺服器。

由於監視架構會從代理程式現有的監視資料基礎架構擷取資料,完成收集度量的所有工作,因此使用 JES 監視架構並不會影響代理程式的效能。

作業事件管理

在舊版中,只有處於 PREPARED 狀態的作業事件可以由管理員回復。換言之,若屬於分散式作業事件的階段作業未正常終止,作業事件將繼續處於代理程式管理員無法清除的狀態。在 Message Queue 4.1 中,您可以使用 imqcmd 公用程式清除 (回復) 下列狀態的作業事件:STARTEDFAILEDINCOMPLETECOMPLETEPREPARED

imqcmd 公用程式提供其他資料做為部分 imqcmd query txn 輸出,以協助您決定特定作業事件是否可回復 (特別是如果該作業事件不在 PREPARED 狀態時)。該公用程式提供啟動作業事件的連線 ID,並指定作業事件的建立時間。管理員可使用此資訊,決定是否需要回復作業事件。一般說來,管理員應避免提前回復作業事件。

C 用戶端連線的固定連接埠

C 用戶端可使用 MQ_SERVICE_PORT_PROPERTY 連線特性,指定要連線的固定連接埠。這在嘗試通過防火牆或需要略過代理程式的連接埠對映器服務 (動態指定連接埠) 時,會很有用。

請記住,您還需要在代理程式端配置 JMS 服務連接埠。例如,若需要透過 ssljms 將用戶端連線至連接埠 1756,請執行下列作業:


備註 –

MQ_SERVICE_PORT_PROPERTY 連線特性是於 Message Queue 3.7 Update 2 中引入。


硬體與軟體需求

如需有關 4.1 版的硬體與軟體需求,請參閱「Sun Java System Message Queue 4.1 Installation Guide」

關於 Message Queue 4.0

Message Queue 4.0 是僅支援 Application Server 9 PE 的發行版本。此為包含一些新功能、次要增強功能和錯誤修正的次要發行版本。本節包含下列資訊。

4.0 版的新增功能

Message Queue 4.0 包含下列新增功能:

這些資訊都會在下列小節中詳述。


注意 – 注意 –

4.0 版推出的其中一個變更極為次要,但可能會造成重大問題,亦即停用指定密碼的指令行選項。因此,您必須如已停用的密碼選項中所述,把所有密碼儲存在一個檔案中。


C API 與 C 用戶端執行階段的介面變更

Message Queue 4.0 版增加兩個特性,停用的訊息佇列中所有的訊息都會設定這兩個特性。

Java API 與 Java 用戶端執行階段的介面變更

Message Queue 4.0 版增加兩個特性,停用的訊息佇列中所有的訊息都會設定這兩個特性。

顯示關於永久存放區的資訊

imqdbmgr 指令已增加 query 子指令。使用此子指令可顯示關於永久存放區的資訊,包含存放區版本、資料庫使用者,以及是否已建立資料庫表格。

以下是該指令所顯示之資訊的範例。


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 3.7 UR1 版推出了永久存放區格式的兩項變更,可改善效能。其中一項變更針對檔案存放區,另一項則針對 JDBC 存放區。

由於這些變更會影響存放區相容性,因此在 Message Queue 3.7 UR1 版中,檔案存放區和 JDBC 存放區的存放區版本皆已由 350 變更為 370。

Message Queue 4.0 版變更了 JDBC 存放區,以取得最佳效能並支援後續的增強功能。因此,JDBC 存放區版本已提昇為 400。請注意,在 4.0 版中,檔案式永久存放區版本沒有任何變更,因此還是 370。

Message Queue 4.0 支援將永久存放區自動轉換為檔案式和 JDBC 永久存放區的最新版本。初次啟動 imqbrokerd 時,如果公用程式偵測到舊版存放區,則會將該存放區遷移至新的格式,同時保留舊版存放區。

若要回復此升級動作,請解除安裝 Message Queue 4.0,然後重新安裝之前執行的版本。由於舊版的存放區副本保留不變,因此代理程式可利用舊版的存放區副本執行。

代理程式管理

指令公用程式 (imqcmd) 已增加子指令和數個選項,可讓管理員靜止代理程式、在指定間隔時間後關閉代理程式、銷毀連線,或設定 Java 系統特性 (例如連線相關特性)

如需有關 imqcmd 指令之語法的完整資訊,請參閱「Sun Java System Message Queue 4.1 Administration Guide」中的第 13 章「Command Line Reference」

JDBC 永久性支援

現在支援將 Apache Derby 10.1.1 版視為 JDBC 相容永久存放區的提供者。

SSL 支援

自 4.0 版起,用戶端連線工廠特性 imqSSLIsHostTrusted 的預設值為 false。若應用程式相依於之前的預設值 true,您需要重新配置並將特性明確設定為 true

當代理程式配置為使用自我簽署的憑證時,您可以選擇信任主機。此時,除了指定連線應使用基於 SSL 的連線服務 (使用 imqConnectionType 特性),還應該將 imqSSLIsHostTrusted 特性設定為 true。

例如,若要在代理程式使用自我簽署的憑證時安全地執行用戶端應用程式,請使用如下的指令。

java -DimqConnectionType=TLS 
      -DimqSSLIsHostTrusted=true <ClientAppName>

若要在代理程式使用自我簽署的憑證時安全地執行管理工具 imqcmd,請使用如下的指令。

imqcmd list svc -secure -DimqSSLIsHostTrusted=true

JMX 支援

已增加符合 Java Management Extensions (JMX) 規格,且可用於配置與監視 Message Queue 代理程式的新 API。您可以使用此 API,從 Message Queue 用戶端應用程式內以程式化方式配置並監視代理程式功能。在 Message Queue 的早期版本中,這些功能只能從指令行或管理主控台存取。

API 包含一組 JMX 受管理 Bean (MBean),以用於管理下列與 Message Queue 相關的資源:

這些 MBean 提供一些屬性作業,以同步輪詢與處理基礎資源的狀態,並提供通知,以允許用戶端應用程式以非同步方式偵聽並回應狀態變更。用戶端應用程式可使用 JMX API,執行如下的配置與監視作業:

如需有關 JMX API 的簡介以及完整參考資訊,請參閱「Sun Java System Message Queue 4.1 Developer’s Guide for JMX Clients」

代理程式支援:JMX 相關特性

增加了數個新的代理程式特性以支援 JMX API (請參閱表 1–3)。您無法使用 Message Queue 指令公用程式 (imqcmd) 從指令行設定這些特性;而是要使用代理程式公用程式 (imqbrokerd) 的 -D 選項設定,或是在代理程式的實例配置檔案 (config.properties) 中手動編輯。此外,其中的部分特性 (imq.jmx.rmiregistry.start imq.jmx.rmiregistry.use imq.jmx.rmiregistry.port) 可以透過表 1–4 中所述之新的代理程式公用程式選項進行設定。該表列出每個選項、指定其類型,並說明其用途。

表 1–3 JMX 支援功能的新代理程式特性

特性 

類型 

說明 

imq.jmx.rmiregistry.start

Boolean

指定是否在代理程式啟動時啟動 RMI 登錄。

若為 true,則代理程式會在 imq.jmx.rmiregistry.port 指定的連接埠啟動 RMI 登錄,並使用該登錄儲存 JMX 連接器的 RMI stub。請注意,此時會忽略 imq.jmx.rmiregistry.use 的值。

預設值:false

imq.jmx.rmiregistry.use

Boolean

指定是否使用外部 RMI 登錄。

僅在 imq.jmx.rmiregistry.startfalse 時適用。

若為 true,則代理程式會在 imq.jmx.rmiregistry.port 指定的連接埠使用外部 RMI 登錄,以儲存 JMX 連接器的 RMI stub。代理程式啟動時,必須已在執行外部 RMI 登錄。

預設值:false

imq.jmx.rmiregistry.port

Integer

RMI 登錄的連接埠號

僅在 imq.jmx.rmiregistry.startimq.jmx.rmiregistry.usetrue 時適用。接著可藉由在 JMX 服務 URL 的 URL 路徑中包含此連接埠號,以配置 JMX 連接器使用 RMI 登錄。

預設值:1099

imq.jmx.connector.list

String

預先配置的 JMX 連接器名稱,以逗號分隔

預設值:jmxrmi,ssljmxrmi

imq.jmx.connector.activelist

String

代理程式啟動時要啟動的 JMX 連接器名稱,以逗號分隔

預設值:jmxrmi

imq.jmx.connector.connectorName.urlpath

String

連接器 connectorName 之 JMX 服務 URL 的 urlPath 元件

這在 JMX 服務 URL 路徑必須明確設定時 (例如使用共用外部 RMI 登錄時),會很有用。

預設值:若是使用 RMI 登錄儲存 JMX 連接器的 RMI stub (亦即如果 imq.jmx.registry.startimq.jmx.registry.usetrue)

   /jndi/rmi://brokerHost:rmiPort
      /brokerHost/brokerPort/connectorName

若未使用 RMI 登錄 (根據預設,imq.jmx.registry.startimq.jmx.registry.use 皆為 false):

   /stub/rmiStub

其中 rmiStub 是 RMI stub 本身的已編碼和串列化表示式

 

imq.jmx.connector.connectorName.useSSL

Boolean

指定連接器 connectorName 是否使用安全傳輸層 (SSL)。

預設值:false

imq.jmx.connector.connectorName.brokerHostTrusted

Boolean

指定是否信任代理程式提供給連接器 connectorName 的所有憑證。

僅在 imq.jmx.connector.connectorName.useSSLtrue 時適用。

若為 false,Message Queue 用戶端執行階段會驗證提供給它的所有憑證。若憑證的簽署者不在用戶端信任清單存放區中,驗證就會失敗。

若為 true,則會略過憑證的驗證。這在軟體測試期間使用自我簽署的憑證這類情況時,就很有用。

預設值:false

imq.jmx.connector.list 特性會定義一組在代理程式啟動時建立的已命名 JMX 連接器;imq.jmx.connector.activelist 會指定其中要啟動的連接器。每個已命名的連接器接著會有各自的特性集:

imq.jmx.connector.connectorName .urlpath

imq.jmx.connector.connectorName .useSSL

imq.jmx.connector.connectorName .brokerHostTrusted

根據預設,會建立兩個 JMX 連接器,名為 jmxrmissljmxrmi;第一個連接器會配置為不使用 SSL 加密 (imq.jmx.connector.jmxrmi.useSSL = false),第二個連接器則使用 (imq.jmx.connector.ssljmxrmi.useSSL = true)。根據預設,代理程式啟動時只會啟動 jmxrmi 連接器;請參閱JMX 用戶端的 SSL 支援,以取得有關如何啟動 ssljmxrmi 連接器進行安全通訊的資訊。

為方便使用,還在指令行代理程式公用程式 (imqbrokerd) 中增加了新的選項 (表 1–4),以控制 RMI 登錄的使用、啟動和連接埠。這些選項的用法和效果與其等效代理程式特性 (如表 1–3 中所述) 相同。該表列出每個選項、指定其等效代理程式特性,並說明其用法。

表 1–4 JMX 支援功能的新代理程式公用程式選項

選項 

等效代理程式特性 

說明 

-startRmiRegistry

imq.jmx.rmiregistry.start

指定是否在代理程式啟動時啟動 RMI 登錄。

-useRmiRegistry

imq.jmx.rmiregistry.use

指定是否使用外部 RMI 登錄。

-rmiRegistryPort

imq.jmx.rmiregistry.port

RMI 登錄的連接埠號

一個新的子指令 (表 1–5) 增加至指令行指令公用程式 (imqcmd),以列出在代理程式啟動時建立和啟動的 JMX 連接器之 JMX 服務 URL。JMX 用戶端若要不使用 Message Queue 簡易類別 AdminConnectionFactory 即取得其 JMX 連接器,就需要此資訊。此資訊也可用於透過 Java 監視與管理主控台 (jconsole) 等一般 JMX 瀏覽器,來管理與監視 Message Queue。

表 1–5 新指令公用程式子指令

子指令 

說明 

list jmx

列出 JMX 連接器的 JMX 服務 URL

JMX 用戶端的 SSL 支援

如上所述,預設會將 Message Queue 訊息代理程式配置為使用預先配置之 JMX 連接器 jmxrmi,進行不安全的通訊。應用程式若要使用安全傳輸層 (SSL) 進行安全通訊,則必須啟動另一個安全的 JMX 連接器 ssljmxrmi。此項作業需要下列步驟:

  1. 如「Message Queue Administration Guide」中所述,使用與 ssljmsssladmincluster 連線服務相同的方式取得並安裝簽署的憑證。

  2. 視需要在信任清單存放區中安裝根憑證授權單位的憑證。

  3. ssljmxrmi 連接器增加至要在代理程式啟動時啟動的 JMX 連接器清單:

    imq.jmx.connector.activelist=jmxrmi,ssljmxrmi

  4. 使用 Message Queue 代理程式公用程式 (imqbrokerd) 啟動代理程式,然後傳遞密碼檔案中的金鑰庫密碼,或在提示時從指令行輸入。

  5. 根據預設,ssljmxrmi 連接器 (或任何其他基於 SSL 的連接器) 會配置為驗證所有提供給它的代理程式 SSL 憑證。若要避免此驗證 (例如,在軟體測試期間使用自我簽署的憑證時),請將代理程式特性 imq.jmx.connector.ssljmxrmi.brokerHostTrusted 設定為 true

配置用戶端的管理員連線工廠 (AdminConnectionFactory) 時,內含的 URL 必須指定 ssljmxrmi 為喜好的連接器:

AdminConnectionFactory  acf = new AdminConnectionFactory();
acf.setProperty(AdminConnectionConfiguration.imqAddress, "mq://myhost:7676/ssljmxrmi");

請視需要使用系統特性 javax.net.ssl.trustStorejavax.net.ssl.trustStorePassword,將 JMX 用戶端指向信任清單存放區。

用戶端執行階段記錄

本節說明 Message Queue 4.0 如何針對連線和階段作業相關事件,支援用戶端執行階段的記錄功能。

JDK 1.4 (及以上版本) 包含 java.util.logging 程式庫。此程式庫會實作可用於應用程式特定記錄的標準記錄程式介面。

Message Queue 用戶端執行階段使用 Java 記錄 API 實作其記錄功能。您可以使用所有 J2SE 1.4 記錄功能來配置記錄作業。例如,應用程式可使用下列 Java 記錄功能,配置 Message Queue 用戶端執行階段輸出其記錄資訊的方式:

如需有關 Java 記錄 API 的更多資訊,請參閱「Java Logging Overview」,網址為 http://java.sun.com/j2se/1.4.2/docs/guide/util/logging/overview.html

記錄名稱空間、層級和作業

Message Queue 提供者會定義一組與記錄層級和記錄作業相關的記錄名稱空間,可在適當設定記錄配置時,讓 Message Queue 用戶端記錄連線與階段作業事件。

Message Queue 用戶端執行階段的根記錄名稱空間定義為 javax.jms。Message Queue 用戶端執行階段的所有記錄程式皆使用此名稱做為父系名稱空間。

Message Queue 用戶端執行階段使用的記錄層級與 java.util.logging.Level 類別中所定義的記錄層級相同。此類別會定義七個標準記錄層級,以及可用於啟動與關閉記錄的兩個其他設定。

OFF

關閉記錄。

SEVERE

最高優先權、最高值。由應用程式定義。

WARNING

由應用程式定義。

INFO

由應用程式定義。

CONFIG

由應用程式定義。

FINE

由應用程式定義。

FINER

由應用程式定義。

FINEST

最低優先權、最低值。由應用程式定義。

ALL

啟用所有訊息的記錄。

一般來說,Message Queue 用戶端執行階段中發生的異常與錯誤,皆由記錄程式使用 javax.jms 名稱空間所記錄。

下表列出可記錄的事件,以及必須設定的記錄層級以記錄 JMS 連線與階段作業事件。

下表說明連線的記錄層級與事件。

表 1–6 javax.jms.connection 名稱空間的記錄層級與事件

記錄層級 

事件 

FINE

已建立連線 

FINE

已啟動連線 

FINE

已關閉連線 

FINE

已中斷連線 

FINE

已重新連線 

FINER

其他連線作業,例如 setClientID

FINEST

訊息、確認、Message Queue 動作與控制訊息 (如正在確定作業事件) 

下列階段作業資訊會記錄在記錄中。

下表說明階段作業的記錄層級與事件。

表 1–7 javax.jms.session 名稱空間的記錄層級與事件

記錄層級 

事件 

FINE

已建立階段作業 

FINE

已關閉階段作業 

FINE

已建立產生器 

FINE

已建立用戶 

FINE

已建立目標 

FINER

其他階段作業,例如正在確定階段作業。 

FINEST

已產生並使用訊息。(訊息特性與內文不會記錄在記錄中) 

根據預設,會從應用程式執行所在的 JRE 繼承輸出記錄層級。請檢查 JRE_DIRECTORY/lib/logging.properties 檔案以判斷該層級為何。

您可以程式化方式或藉由使用配置檔案來配置記錄功能,且可控制記錄發生的範圍。以下小節說明這些可能的作業。

使用 JRE 記錄配置檔案

下列範例說明如何在 JRE_DIRECTORY/lib/logging.properties 檔案中設定記錄名稱空間與層級,該檔案將用以設定 Java 執行階段環境的記錄層級。使用此 JRE 的所有應用程式會有相同的記錄配置。以下的配置範例會將 javax.jms.connection 名稱空間的記錄層級設定為 INFO,並指定將輸出寫入 java.util.logging.ConsoleHandler

#logging.properties file.
# "handlers" specifies a comma separated list of log Handler 
# classes. These handlers will be installed during VM startup.
# Note that these classes must be on the system classpath.
# By default we only configure a ConsoleHandler, which will only
# show messages at the INFO and above levels.

	handlers= java.util.logging.ConsoleHandler

# Default global logging level.
# This specifies which kinds of events are logged across
# all loggers. For any given facility this global level
# can be overriden by a facility-specific level.
# Note that the ConsoleHandler also has a separate level
# setting to limit messages printed to the console.

    .level= INFO

# Limit the messages that are printed on the console to INFO and above.

    java.util.logging.ConsoleHandler.level = INFO
    java.util.logging.ConsoleHandler.formatter = 
                                    java.util.logging.SimpleFormatter

# The logger with javax.jms.connection name space will write
# Level.INFO messages to its output handler(s). In this configuration 
# the ouput handler is set to java.util.logging.ConsoleHandler.

    javax.jms.connection.level = INFO

使用特定應用程式的記錄配置檔案

您也可以從用於執行應用程式的 Java 指令行來定義記錄配置檔案。應用程式會使用指定的記錄檔中所定義之配置。在下列範例中,configFile 使用 JRE_DIRECTORY/lib/logging.properties 檔案中所定義的相同格式。

java -Djava.util.logging.config.file=configFile MQApplication

以程式化方式設定記錄配置

下列程式碼使用 java.util.logging API,將 javax.jms.connection 名稱空間記錄層級變更為 FINE,以記錄連線事件。您可以在應用程式中包含這類程式碼,從而以程式化方式設定記錄配置。

import java.util.logging.*;
//construct a file handler and output to the mq.log file 
//in the system's temp directory.

    Handler fh = new FileHandler("%t/mq.log");
    fh.setLevel (Level.FINE);

//Get Logger for "javax.jms.connection" domain.

    Logger logger = Logger.getLogger("javax.jms.connection");
    logger.addHandler (fh);

//javax.jms.connection logger would log activities   
//with level FINE and above.

    logger.setLevel (Level.FINE);

連線事件通知

連線事件通知可讓 Message Queue 用戶端偵聽關閉事件與重新連線事件,並根據通知類型與連線狀態採取適當的動作。例如,當發生容錯移轉且用戶端重新連線至其他代理程式時,應用程式最好清除作業事件狀態,並進行新的作業事件。

如果 Message Queue 提供者偵測到嚴重的連線問題,它會呼叫連線物件的已註冊之異常偵聽程式。它會呼叫偵聽程式的 onException 方法,並傳遞描述問題的 JMSException 引數給該方法。Message Queue 提供者亦可提供事件通知 API,讓用戶端執行階段將連線狀態的變更通知應用程式。通知 API 由下列元素所定義:

以下小節說明可觸發通知的事件,並說明建立事件偵聽程式的方式。

連線事件

下表列出並說明事件偵聽程式會傳回的事件。

請注意,發生連線事件時,不會呼叫 JMS 異常偵聽程式。只有在用戶端執行階段用盡重新連線的嘗試次數時,才會呼叫異常偵聽程式。用戶端執行階段一律會先呼叫事件偵聽程式,再呼叫異常偵聽程式。

表 1–8 通知事件

事件類型 

意義 

ConnectionClosingEvent

當 Message Queue 用戶端執行階段收到代理程式的通知,指出由於管理員請求關閉,因此連線即將關閉時,即會產生此事件。 

ConnectionClosedEvent

當連線由於代理程式錯誤或由於管理員請求關閉或重新啟動而關閉時,Message Queue 用戶端執行階段會產生此事件。 

當事件偵聽程式收到 ConnectionClosedEvent 時,應用程式可使用已接收事件的 getEventCode() 方法取得指出關閉原因的事件代碼。

ConnectionReconnectedEvent

Message Queue 用戶端執行階段已重新連線至代理程式。這可能是用戶端之前連線的同一個或不同的代理程式。 

應用程式可使用已接收事件的 getBrokerAddress 方法取得重新連線的代理程式位址。

ConnectionReconnectFailedEvent

Message Queue 用戶端執行階段無法重新連線至代理程式。每次重新連線嘗試失敗時,執行階段即會產生新的事件,並將其傳送到事件偵聽程式。 

發生連線事件時,不會呼叫 JMS 異常偵聽程式。只有在用戶端執行階段用盡重新連線的嘗試次數時,才會呼叫。用戶端執行階段一律會先呼叫事件偵聽程式,再呼叫異常偵聽程式。 

建立事件偵聽程式

下列程式碼範例描述設定連線事件偵聽程式的方式。每次發生連線事件時,用戶端執行階段便會呼叫事件偵聽程式的 onEvent 方法。

//create an MQ connection factory.

com.sun.messaging.ConnectionFactory factory =
        new com.sun.messaging.ConnectionFactory();

//create an MQ connection.

com.sun.messaging.jms.Connection connection = 
       (com.sun.messaging.jms.Connection )factory.createConnection();

//construct an MQ event listener.  The listener implements 
//com.sun.messaging.jms.notification.EventListener interface.

com.sun.messaging.jms.notification.EventListener eListener = 
       new ApplicationEventListener();

//set event listener to the MQ connection.

connection.setEventListener ( eListener );

事件偵聽程式範例

在此範例中,應用程式選擇事件偵聽程式將連線事件記錄到應用程式的記錄系統:

public class ApplicationEventListener implements
				com.sun.messaging.jms.notification.EventListener {

public void onEvent ( com.sun.messaging.jms.notification.Event connEvent ) {
      	log (connEvent);
}
private void log ( com.sun.messaging.jms.notification.Event connEvent ) {
	      String eventCode = connEvent.getEventCode(); 
      	String eventMessage = connEvent.getEventMessage();
    	  //write event information to the output stream.
     	}
}

硬體與軟體需求

如需有關 4.0 版軟硬體需求的資訊,請參閱 Sun Java System Application Server Platform Edition 9 的版本說明。

此版本中已修正的錯誤

下表說明 Message Queue 4.1 版中已修正的錯誤。

表 1–9 Message Queue 4.1 中已修正的錯誤

錯誤 

說明 

6381703 

已處理的遠端訊息可能在重新啟動產生訊息的代理程式時,再度確定。 

6388049 

無法清除未完成的分散式作業事件。 

6401169 

imqcmd 的確定與回復選項不會提示進行確認。 

6473052 

自動建立的佇列預設值應為循環。(MaxNumberConsumers = -1)。

6474990 

代理程式記錄會顯示 imqcmd list dst 指令的 ConcurrentModificationException

6487413 

當運作方式為 REMOVE_OLDESTREMOVE_LOWER_PRIORITY 時,記憶體會發生錯誤。

6488340 

代理程式進行循環,而用戶端則等候確認的回覆。 

6502744 

代理程式不會遵循停用的訊息佇列的預設限制 (1000 則訊息)。 

6517341 

當用戶端連線至高可用性叢集時,用戶端執行階段需要改善重新連線邏輯,從而不論 imqReconnectEnabled 特性的值為何,皆允許用戶端重新連線。

6528736 

Windows 自動啟動服務 (imqbrokersvc) 在啟動期間發生故障。

6561494 

當兩則訊息共用一個階段作業時,訊息會傳送到錯誤的用戶。 

6567439 

PREPARED 作業事件中產生的訊息若在重新啟動代理程式之後確定,傳送順序可能會亂掉。

下表說明 Message Queue 4.0 中已修正的錯誤。

表 1–10 Message Queue 4.0 中已修正的錯誤

錯誤編號 

說明 

4986481 

在 Message Queue 3.5 中,呼叫 Session.recover 時,可能會在自動重新連線模式中當機。

4987325 

在呼叫 Session.recover 之後,重新傳送訊息的重新傳送旗標會設定為 false

6157073 

將新的連線訊息變更為不僅包含總連線數,還包含服務中的連線數。 

6193884 

Message Queue 在使用非 ASCII 字元顯示訊息的語言環境中,會將垃圾字元訊息輸出至系統記錄。 

6196233 

無法使用 JMSMessageID 選取訊息。

6251450 

叢集關機期間,遍歷 connectList 物件時發生 ConcurrentModificationException

6252763 

java.nio.HeapByteBuffer.putLong/Int 中發生 java.nio.BufferOverflowException

6260076 

使用 Oracle 儲存,自代理啟動第一則訊息發佈後,訊息發佈變慢。 

6260814 

處理 JMSXUserID 的選擇器一律視為 false

6264003 

佇列瀏覽器會顯示屬於未確定作業事件的訊息。 

6271876 

連線流量控制在關閉具有未使用訊息的用戶時,無法正常運作。 

6279833 

Message Queue 不應該允許兩個代理程式使用相同的 jdbc 表格。 

6293053 

如果變更系統的 IP 位址,則主代理程式不會正確啟動,除非存放區已被清除 (使用 —reset store。)

6294767 

Message Queue 代理程式需要在它開啟的網路通訊端上設定 SO_REUSEADDR

6304949 

無法設定 TopicConnectionFactoryClientID 特性。

6307056 

txn 記錄是效能瓶頸。

6320138 

Message Queue C API 無法從回覆傳送標頭判斷佇列的名稱。 

6320325 

在 Solaris 上,即使同時安裝了 JDK 1.4 與 JDK 1.5 版本,代理程式有時仍會先選擇 JDK 1.4。 

6321117 

多個代理程式叢集初始化丟出 java.lang.NullPointerException

6330053 

用戶確定作業事件時,JMS 用戶端會丟出 java.lang.NoClassDefFoundError

6340250 

C-API 支援 MESSAGE 類型。

6351293 

新增對 Apache Derby 資料庫的支援。 

重要資訊

本節包含核心產品文件中所沒有的最新資訊。本節涵蓋下列主題:

安裝說明

請參閱「Sun Java System Message Queue 4.1 Installation Guide」,以取得有關在 Solaris、Linux 和 Windows 平台上安裝 Message Queue 的預先安裝指示、升級程序和所有其他資訊。

請參閱「Sun Java Enterprise System 安裝指南」,以取得有關在 Solaris、Linux 和 HPUX 平台上安裝 Message Queue Enterprise Edition 的預先安裝指示和所有其他資訊。

請參閱「Sun Java Enterprise System 升級與遷移指南」,以取得有關在 Solaris、Linux、HPUX 和 Windows 平台上升級至 Message Queue Enterprise Edition 的升級和遷移指示。

相容性問題

本節涵蓋 Message Queue 4.1 中的相容性問題。

介面穩定性

Sun Java System Message Queue 使用許多介面,而這些介面可能會隨時間而有所變更。「Sun Java System Message Queue 4.1 Administration Guide」中的附錄 B「Stability of Message Queue Interfaces」根據介面的穩定性對其進行了分類。 介面愈穩定,在後續版本中變更的可能性愈小。

與下一個主要 Message Queue 發行版本相關的問題

下一個主要 Message Queue 發行版本可能會引入新的變更導致您的用戶端與該版本不相容。現在提供這個資訊是為了讓您對這些變更做好準備。

Message Queue 4.1 的文件更新

Message Queue 4.1 除了此「版本說明」文件,僅包含一個新文件:「Sun Java System Message Queue 4.1 Developer’s Guide for JMX Clients」。此文件已於 Message Queue 4.0 版中推出。在 4.1 版中,增加了介紹 JMX 模型的概念性資訊。

Message Queue 3.6 SP3 2005Q4 所發佈的 Message Queue 文件,已針對 Application Server 9 PE 用戶端的需求而有所更新。此文件集可在下列位置取得。

http://docs.sun.com/app/docs/coll/1307.1

安裝與升級資訊

「Sun Java System Message Queue 4.1 Installation Guide」已更新,以反映平台特定的資訊。此文件現在包含與 Message Queue 4.1 相關的安裝及升級資訊。

管理指南

管理指南」已更新,以提供有關高可用性叢集、JAAS 支援與 JMX 支援的資訊。

Java 用戶端的開發者指南

Java 用戶端的開發者指南」已更新,以反映所增加的用戶端執行階段記錄支援和連線事件通知。

C 用戶端的開發者指南

C 用戶端的開發者指南」已更新,以反映所增加的 MQGetDestinationName 功能、MQ_Message 訊息類型和固定的連接埠。

已知的問題與限制

本節包含 Message Queue 4.1 的已知問題清單。涵蓋以下的產品區域:

如需目前錯誤的清單、這些錯誤的狀態與解決方法,Java Developer Connection™ 成員可參考 Java Developer Connection 網站上的「Bug Parade」頁面。在您報告新的錯誤之前,請先檢視此頁面。儘管此頁面未列出所有的 Message Queue 錯誤,但如果您想知道問題是否已報告,這是個不錯的起點。

http://bugs.sun.com/bugdatabase/index.jsp


備註 –

可免費獲得 Java Developer Connection 成員資格,但需要註冊。Sun 的「For Developers」網頁上會提供有關如何成為 Java Developer Connection 成員的詳細資訊。


若要報告新的錯誤或提交功能請求,請將郵件傳送至 imq-feedback@sun.com

安裝問題

本節說明與安裝 Message Queue 4.1 版相關的問題。

產品登錄與 JES

Message Queue 4.1 版由新的安裝程式所安裝,該安裝程式也會安裝及升級 Message Queue 所需的共用元件,例如 JDK、NSS 程式庫、JavaHelp 等。此安裝程式與 Java Enterprise System (JES) 安裝程式不會共用相同的產品登錄。如果 Message Queue 安裝程式把隨著 JES 安裝的 Message Queue 版本移除,然後升級至 Message Queue 4.1,則 JES 產品登錄的狀態可能會不一致。因此,執行 JES 解除安裝程式時,它可能會不慎移除 Message Queue 4.1 以及並非由其安裝的相依共用元件。

升級由 JES 安裝程式所安裝之軟體的最佳方式如下所示。

  1. 使用 JES 解除安裝程式移除 Message Queue 及其共用元件。

  2. 使用 Message Queue 安裝程式安裝 Message Queue 4.1。

選取適當的 JRE

Message Queue 4. 1 安裝程式的 [JDK Selection] 畫面可讓您選取系統上現有的 JDK/JRE,供 Message Queue 使用。不過所示的清單也會包含用於執行安裝程式應用程式的 JRE。此 JRE 是安裝程式的隨附軟體,並未實際安裝在系統上。(錯誤 6585911)

安裝程式所使用的 JRE 需透過其路徑加以辨識,此路徑應位於解壓縮後的安裝程式目錄之下,並應包含 mq4_1–installer 子目錄。例如:

some_directory/mq4_1–installer/usr/jdk/instances/jdk1.5.0/jre

請勿選取此 JRE 供 Message Queue 使用。請改選取系統上的其他 JDK。若不存在,請採用適用於您的平台的動作。

在 Windows 上安裝

在 Windows 上安裝 Message Queue 時,請注意下列限制。

在 Solaris 上安裝

錯誤訊息和「不完整」摘要狀態會誤導嘗試使用 installer-n 指令進行安裝的使用者。但指令實際上已成功執行。(錯誤 6594351)

在 Linux 上安裝

下列問題會影響 Linux 平台上的安裝作業。

在所有平台上安裝

這些問題會影響所有平台上的安裝作業。

版本資訊

安裝程式會以不易理解的格式顯示 Message Queue 的版本資訊。(錯誤 6586507)

在 Solaris 平台上,請參照下表以判斷所安裝的版本。

表 1–11 版本格式

安裝程式所顯示的版本 

Message Queue 的發行版本 

4.1.0.0 

4.1 

3.7.0.1 

3.7 UR1 

3.7.0.2 

3.7 UR2 

3.7.0.3 

3.7 UR3 

3.6.0.0 

3.6 

3.6.0.1 

3.6 SP1 

3.6.0.2 

3.6 SP2 

3.6.0.3 

3.6 SP3 

3.6.0.4 

3.6 SP4 


備註 –

針對 3.6 SP4 的修補程式版本 (例如 3.6 SP4 Patch 1),安裝程式顯示的發行版本字串會維持不變。您需要執行指令 imqbrokerd –version 以判斷實際版本。


在 Linux 平台上無法提供簡易格式轉換。安裝程式顯示在 Linux 上的版本編號使用下列格式。

<majorReleaseNumber>.<minorReleaseNumber>-<someNumber>

例如,3.7–22。這表示其為 3.7 發行版本的其中之一,但未指定是哪一個特定版本。若要判斷特定版本,請執行指令 imqbrokerd —version

本土化問題

下列問題與本土化問題相關。

已停用的密碼選項

在 Message Queue 之前的版本中,可以在下列指令中使用 —p —password 選項,以互動方式指定密碼:imqcmdimqbrokerdimdbmgr。自 4.0 版起,這些選項已停用。您必須依下列方式提供密碼。

  1. 在僅用於儲存密碼的檔案中,將密碼特性設定為所需的值。

    使用下列語法指定密碼檔案中的密碼。

    PasswordPropertyName= MyPassword

  2. 使用 —passfile 選項傳遞密碼檔案的名稱。

密碼檔案可包含下列一或多個密碼。

在下列範例中,JDBC 資料庫的密碼會設定為 abracadabra

imq.persist.jdbc.mysql.password=abracadabra

您可以配置代理程式使用以下列方式建立的密碼檔案。

一般問題

本節涵蓋 Message Queue 4.1 中的一般問題。其中部分問題已在 Message Queue 之前的版本中出現。

管理/配置問題

下列問題與 Message Queue 的管理及配置相關。

代理程式問題

下列問題會影響 Message Queue 代理程式。

代理程式叢集

下列問題會影響叢集代理程式。

JMX 問題

在 Windows 平台上,作業事件管理器監視 MBean 的 getTransactionInfo 方法,會傳回作業事件建立時間不正確的作業事件資訊 (錯誤 ID 6393359)。

解決方法:請改用作業事件管理器監視 MBean 的 getTransactionInfoByID 方法。

SOAP 支援

您必須瞭解與 SOAP 支援相關的兩個問題。

可再分發的檔案

Sun Java System Message Queue 4.1 包含的下列檔案集,可讓您以二進位格式使用和隨意分發:

fscontext.jar

jms.jar

imq.jar

libmqcrt.so (HPUX)

imqjmx.jar

libmqcrt.so (UNIX)

imqxm.jar

mqcrt1.dll (Windows)

jaas.jar

 

此外,您還可以重新分發 LICENSECOPYRIGHT 檔案。

為殘障人士提供的無障礙功能

欲獲得此媒體發佈以來已發行的無障礙功能,請向 Sun 索取依據美國「Section 508」法規進行產品評估所得之結果文件,以便決定最適合佈署無障礙功能解決方案的版本。以下網址將提供應用程式的更新版本:

http://sun.com/software/javaenterprisesystem/get.html

如需有關 Sun 在無障礙功能方面之成果的資訊,請至 http://sun.com/access

如何報告問題和提供建議

如果您對 Sun Java System Message Queue 存有任何疑問,請使用以下任一機制與 Sun 客戶支援中心連絡:

為了讓我們能更有效地幫助您解決問題,當您與支援人員連絡時,請準備好以下資訊:

Sun Java System 軟體論壇

Sun Java System Message Queue 的論壇位於:

http://swforum.sun.com/jive/forum.jspa?forumID=24

我們非常歡迎您的加入討論。

Java 技術論壇

Java 技術論壇中有一個或許您會感興趣的 JMS 論壇。

http://forum.java.sun.com

Sun 歡迎您提出寶貴意見

Sun 致力於提高文件品質,因此誠心歡迎您提出意見與建議。

若要分享您的意見,請至 http://docs.sun.com,並按一下 [Send Comments (傳送您的意見)]。在線上表格中,請提供文件標題及文件號碼。文件號碼位於書本的標題頁或文件的頂部,通常是一組七位或九位數的數字。例如,本書的書名是「Sun Java System Message Queue 4.1 版本說明」,文件號碼為 820-3194。

在您提出意見時,可能需要在表單中輸入英文版書名和文件號碼,本書的英文版文件號碼和書名為:819-7753 和「Sun Java System MessageQueue 4.1 Release Notes」。

其他 Sun 資源

您可在下列網際網路位置找到有用的 Sun Java System 資訊: