Sun Java System Message Queue 4.2 版本說明

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

版本 4.2

文件號碼 820-5644

這些版本說明包含 Sun Java™ System Message Queue 4.2 發行時所提供的重要資訊。其中包括新增功能和增強功能、已知的問題與限制以及其他資訊。使用 Message Queue 4.2 前,請先閱讀本文件。

此版本說明也包含有關 Message Queue 4.0 與 4.1 版的相關資訊:如需有關這些版本所推出之功能的資訊,請分別參閱Message Queue 4.0 的新功能Message Queue 4.1 的新功能

您可以在 Sun Java System Message Queue 文件網站找到此版本說明的最新版本,網址是 http://docs.sun.com/coll/1421.3。 請在安裝與設定軟體之前瀏覽此網站,並定期檢視最新版本說明與產品文件。

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

本文件中提供了協力廠商 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 月 

Message Queue 4.1 版的本文件第 3 版。增加對 Java Enterprise System Monitoring Framework 的支援、固定 C 連接埠、錯誤修正及其他功能的說明。 

2008 年 4 月 

Message Queue 4.2 的本文件初稿。增加此發行版本的新功能。 

安裝或升級為 Message Queue 4.2

您可以使用 Message Queue 4.2 安裝程式執行 Message Queue 4.2 的全新安裝,或從 Message Queue 3.6 或更新版本進行升級。「Sun Java System Message Queue 4.2 Installation Guide」中說明此程序及有關在 Solaris、Linux 與 Windows 平台上進行安裝或升級的所有其他資訊,但尚未針對 Message Queue 4.2 進行更新。

若要從 Message Queue 3.6 版之前的版本進行升級,請參閱「Sun Java Enterprise System 5 Upgrade Guide for UNIX」和「Sun Java Enterprise System 5 Update 1 Upgrade Guide for UNIX」

另請參閱安裝問題,以瞭解已知的安裝及升級問題與限制。

Message Queue 4.2 支援的平台與元件

本節涵蓋下列有關 Message Queue 4.2 系統需求的主題:

作業系統平台支援

Solaris、Linux 與 Windows 作業系統平台均支援 Message Queue 4.2。表 1–2 顯示每種平台的支援版本。如需每種平台的硬體需求,請參閱「Sun Java System Message Queue 4.2 Installation Guide」

表 1–2 支援的平台版本

平台 

支援的版本 

Solaris 

Solaris 9 (SunOS 5.9)、所有更新 (SPARC、x86)

Solaris 10 (SunOS 5.10)、所有更新 (SPARC、x86、x64)

Linux 

Red Hat Enterprise Linux Advanced Server 3.0、4.0、5.0、所有更新、32 與 64 位元版本 (x86、x64)

Red Hat Enterprise Linux Enterprise Server 3.0、4.0、5.0、所有更新、32 與 64 位元版本 (x86、x64)

Windows 

Windows Vista 

Windows XP Professional,具備 SP2 (x86) [不支援 Home、Tablet PC 或 Media Center Edition]

Windows 2000 Advanced Server,具備 SP4 (x86) [不支援 Professional 或 Server Edition]

Windows Server 2003 Standard 與 Enterprise Edition,具備 SP2、32 與 64 位元版本 (x86、x64) [不支援 Web 或 Small Business Server Edition]

系統虛擬支援

系統虛擬是可讓多項作業系統 (OS) 實例在共用硬體上獨立執行的一種技術。在功能上,部署至虛擬環境中代管之作業系統的軟體,通常不知道基礎平台已虛擬化。Sun 會在選取的系統虛擬與作業系統組合上測試 Sun Java System 產品,以協助驗證 Sun Java System 產品在規模與配置適當的虛擬環境中,能夠如同在非虛擬系統上一般地繼續運作。如需有關 Sun Java System 產品在虛擬環境中之 Sun 支援的資訊,請參閱 http://download.oracle.com/820-4651

元件相依性

除了平台特定的需求之外,Message Queue 4.2 也必須先安裝特定基本元件,才可開發與執行 Message Queue 用戶端。表 1–3 說明這些元件。您也可使用其他版本或供應商的實作,但這些版本或實作未經 Sun Microsystems 測試,因此不受正式支援。


備註 –

Message Queue 安裝程式可讓您選取現有的 JDK/JRE 或安裝 JDK 版本 (1.5.0_15)。


表 1–3 必要的支援元件

元件 

支援 

支援的版本 

Java 執行階段環境 (JRE)

Message Queue 代理程式與管理工具 

J2SETM Runtime Environment 1.5.0_15 或更新版本

JavaTM SE Runtime Environment 1.6.0

(僅限 Sun Microsystems 版本) 

Java 軟體開發工具組 (JDK) 標準版

Java 用戶端開發與部署 

J2SE Development Kit 1.5.0_15 或更新版本 

Java SE Development Kit 1.6.0

(僅限 Sun Microsystems 生產版本) 

表 1–4 顯示您可以安裝以提供進一步 Message Queue 用戶端支援的其他元件。您可能不需要此處所列的所有元件:例如,若不是撰寫 C 用戶端,則不需要 C 編譯器、C++ 執行階段程式庫、NSPR 或 NSS。

表 1–4 選用的支援元件

元件 

支援 

支援的版本 

應用程式伺服器 

HTTP/HTTPS

Sun Java System Application Server Enterprise Edition 9.1 Update 2 

Web 伺服器 

HTTP/HTTPS

Sun Java System Web Server Enterprise Edition 7.0 Update 2 

資料庫 

JDBC 資料存放區 

HADB 4.4.3.5 版

Java DB (Apache Derby) 10.2.2 版

MySQL Community Edition 5.0 版 

Oracle10g 

postgreSQL 8.1 版 


備註 –

不再支援 PointBase 資料庫。


高可用性的資料庫 

高可用性代理程式叢集 

HADB 4.4.3.5 版

MySQL Cluster Edition 5.0 版 

Oracle10g 

簡易目錄存取協定 (LDAP) 目錄伺服器

Message Queue 使用者儲存庫與管理物件 

Sun Java System Directory Server 6.0 版 

Java Naming and Directory Interface (JNDI)

管理物件支援與 LDAP 使用者儲存庫

JNDI 1.2.1 版

LDAP Service Provider 1.2.2 版

File System Service Provider 1.2 Beta 3 版 [僅限管理物件支援;支援開發與測試,但不支援在生產環境中進行部署]

C 編譯器與相容的 C++ 執行階段程式庫 

Message Queue C 用戶端 

Solaris:Sun Studio 11 版或更新版本、C++ 編譯器搭配標準模式與 C 編譯器

Linux:gcc/g++ 3.2.3 版

Windows:Microsoft Windows Visual C++ 6.0 版,具備 SP3

Netscape Portable Runtime (NSPR)

Message Queue C 用戶端 

4.7–1 版 [隨附為下載隨附式軟體中的共用套裝軟體]

Network Security Services (NSS)

Message Queue C 用戶端 

3.11.9–1 版

Message Queue 4.2 與最近發行版本的新功能

以下各節說明 Message Queue 4.2、4.1 與 4.0 的新功能:

Message Queue 4.2 的新功能

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

Message Queue 4.2 是包含幾個增強功能與錯誤修正的次級發行版本。本節說明如何安裝或升級為 Message Queue 4.2,並說明此發行版本所包含的新功能:

如需有關 Message Queue 4.0 與 4.1 中推出之功能的資訊,請分別參閱Message Queue 4.0 的新功能Message Queue 4.1 的新功能

發佈程式或訂閱者的多個目標

在 Message Queue 4.2 中,發佈程式現在可將訊息發佈至多個主題目標,而訂閱者可從多個主題目標使用訊息。使用包含萬用字元符號的主題目標名稱即可代表多個目標,進而達成此功能。使用這類符號名稱可讓管理員視需要建立與萬用字元命名方案一致的其他主題目標。發佈程式與訂閱者會自動發佈至增加的目標,以及從增加的目標進行取用 (萬用字元主題訂閱者比發佈程式更常用)。


備註 –

此功能不會套用至佇列目標。


符號主題目標名稱的格式包含多個區段,其中萬用字元符號 (*、**、>) 可代表名稱的一或多個區段。例如,假設您的主題目標命名方案如下:

size.color.shape

其中主題名稱區段可具有下列值:

Message Queue 支援下列萬用字元符號:

因此,您可以如下表示多個主題目標:

large.*.circle 表示:

large.red.circle
large.green.circle
...

**.square 代表結尾是 .square 的所有名稱,例如:


small.green.square
medium.blue.square
...

small.> 代表開頭是 small. 的所有目標名稱,例如:


small.blue.circle
small.red.square
...

若要使用此多重目標功能,您可以使用類似上述的命名方案建立主題目標。用戶端應用程式會接著建立使用符號目標名稱的發佈程式或用戶。例如:

...
String DEST_LOOKUP_NAME = "large.*.circle";
Topic t = (Destination) ctx.lookup(DEST_LOOKUP_NAME);
TopicPublisher myPublisher = mySession.createPublisher(t)
myPublisher.send(myMessage);
...
String DEST_LOOKUP_NAME = "**.square";
Topic t = (Destination) ctx.lookup(DEST_LOOKUP_NAME);
TopicSubscriber mySubscriber = mySession.createSubscriber(t);
Message m = mySubscriber.receive();

在第一個範例中,代理程式會在符合符號名稱 large.*.circle 的所有目標中,放置一個訊息副本。在第二個範例中,若至少有一個目標符合符號名稱 **.square,則會建立訂閱者;且訂閱者會從符合該符號名稱的所有目標接收訊息。若沒有目標符合符號名稱,則在出現此目標之前,不會建立訂閱者。

若管理員建立符合符號名稱的其他目標,則使用此符號名稱建立的萬用字元發佈程式會接著發佈至此目標,且使用此符號名稱建立的萬用字元訂閱者會接著接收來自此目標的訊息。

此外,Message Queue 管理工具除了會報告某主題目標的發佈程式 (產生器) 與訂閱者 (用戶) 總數之外,還會報告萬用字元發佈程式 (包含其對應符號目標名稱) 的數目,以及萬用字元訂閱者 (包含其符號目標名稱) 的數目 (若有的話)。

XML 有效負載訊息的模式驗證

Message Queue 4.2 的此新功能可在將訊息傳送至代理程式時,根據 XML 模式驗證 XML 訊息文字 (而非物件) 的內容。XML 模式 (XSD) 的位置會指定為 Message Queue 目標的特性。若未指定任何 XSD 位置,則會使用 XML 文件中的 DTD 宣告,執行 DTD 驗證 (XSD 驗證包含資料類型與值範圍驗證,比 DTD 驗證嚴格)。

使用此新功能的用戶端應用程式應將 Java SE 版本升級為 JRE 1.5 或更新版本。

若要啟用 XML 模式驗證,請設定下列實體目標特性:

表 1–5 XML 模式驗證的實體目標特性

特性 

類型 

預設值 

說明 

validateXMLSchemaEnabled

Boolean 

false

是否啟用 XML 模式驗證? 

如果設定為 false 或未設定,則目標未啟用 XML 模試驗證。

XMLSchemaURIList

String 

空值 

以空格分隔的 XML 結構描述文件 (XSD) URI 字串清單 

這些 URI 指向 XML 模式驗證 (如果有) 所使用的一或多個 XSD 位置。 

如果指定多個 URI,請使用雙引號括住此值。 

範例: 

"http://foo/flap.xsd http://test.com/test.xsd"

如果此特性未設定或為空值,且已啟用 XML 驗證,則會使用 XML 文件中指定的 DTD 執行 XML 驗證。 

reloadXMLSchemaOnFailure

Boolean 

false

是否啟用 [失敗時重新載入 XML 模式]? 

如果設定為 False 或未設定,則驗證失敗時不會重新載入模式。 

啟用 XML 驗證時,Message Queue 用戶端執行階段會嘗試根據指定的 XSD (若未指定任何 XSD,則根據 DTD) 驗證 XML 訊息,再傳送至代理程式。若找不到指定的模式或無法驗證訊息,則不會傳送訊息且會丟出例外。

您可分別在使用 imqcmd create dst 指令 (建立目標時) 或 imqcmd update dst 指令 (更新時) 時設定 XML 驗證特性。您應在目標為非使用中時設定 XML 驗證特性:亦即沒有用戶及產生器,且目標中沒有訊息時。


備註 –

若在執行階段無法存取 XSD,可能必須在目標為使用中時修改 XMLSchemaURIList


若在目標為使用中時 (例如,若有產生器連線至目標) 設定了任何 XML 驗證特性,產生器必須重新連線至代理程式,變更才會生效。同理,若由於變更應用程式需求而變更了 XSD,則根據已變更之 XSD 來產生 XML 訊息的所有用戶端應用程式,均須重新連線至代理程式。

reloadXMLSchemaOnFailure 特性設定為 true 且 XML 驗證失敗,則 Message Queue 用戶端執行階段會嘗試重新載入 XSD,再重新嘗試驗證訊息。若驗證使用重新載入的 XSD 仍失敗,用戶端執行階段會丟出例外。

分散式作業事件的 C-API 支援

根據 X/Open 分散式作業事件模型,分散式作業事件的支援仰賴於分散式作業事件管理程式,此管理程式會追蹤並管理一或多個資源管理程式所執行的作業。在 Message Queue 4.2 中,Message Queue C-API 現在支援 XA 介面 (介於分散式作業事件管理程式與 Message Queue 之間,作為 XA 相容資源管理員),可讓在分散式作業事件處理環境 (如 BEA Tuxedo) 中執行的 Message Queue C-API 用戶端,參與分散式作業事件。

此分散式作業事件支援包含實作 XA 介面規格時所使用的下列 C-API 新功能 (以及新參數與錯誤碼):

MQGetXAConnection()
MQCreateXASession()

若 C 用戶端應用程式將用於分散式作業事件環境中,則必須透過使用 MQGetXAConnection() 取得連線,並透過使用 MQCreateXASession() 建立產生與使用訊息的階段作業。管理所有分散式作業事件的啟動、確認與回復時,均透過分散式作業事件管理程式提供的 API。

公共資訊

X/Open XA 介面規格需要下列有關 Message Queue XA 相容資源管理員的公共資訊:

支援下列「名稱/值」對:

表 1–6 Message Queue 資源管理員「名稱/值」對

名稱 

值 

說明 

預設值 

address 

host:port

代理程式之連接埠對映器服務的 host:port。 

localhost:7676

username 

string 

連線至代理程式所使用的使用者名稱 

guest

password 

string 

使用者名稱的密碼 

guest

conntype 

TCP 或 SSL 

代理程式連線的協定類型 

TCP

trustedhost 

true/false 

是否信任代理程式主機 (僅適用於 conntype=SSL) 

true

certdbpath 

string 

包含 NSS 憑證與金鑰資料庫檔案之目錄的完整路徑 

未設定 

clientid 

string 

僅 JMS 長期訂閱才需要 

未設定 

reconnects 

integer 

對代理程式的重新連線嘗試次數 (0 表示不重新連線) 

0

程式設計範例

若要設計使用分散式作業事件的應用程式,可以建立在作業事件管理程式環境中執行的伺服器端服務,以及呼叫作業事件管理程式 API 的用戶端程式碼。Message Queue 4.2 根據 Tuxedo 作業事件管理程式提供程式設計範例。這些範例在每個平台上皆位於 ./C/tuxedo 目錄的程式範例目錄中。

此目錄包含 README 檔案,說明如何設定 Tuxedo 以使用 Message Queue 資源管理員,以及如何在 Tuxedo 環境中建立下列程式範例:

程式範例 

說明 

jmsserver.c

使用 Message Queue 實作傳送與接收訊息的 Tuxedo 服務。 

jmsclient_sender.c

jmsserver.c 程式中使用訊息產生服務的 Tuxedo 用戶端。

jmsclient_receiver.c

jmsserver.c 程式中使用訊息接收服務的 Tuxedo 用戶端。

async_jmsserver.c

使用 Message Queue 實作非同步使用訊息的 Tuxedo 服務。 

jmsclient_async_receiver.c

async_jmsserver.c 程式中使用非同步訊息使用服務的 Tuxedo 用戶端。

Sun Connection 註冊的安裝程式支援

Message Queue 安裝程式已增強為可向 Sun Connection 註冊 Message Queue;Sun Connection 是協助您追蹤、管理及維護 Sun 軟硬體的 Sun 代管服務。

您可以在 Message Queue 安裝過程中,選擇是否要向 Sun Connection 註冊 Message Queue。已安裝之 Message Queue 的相關資訊 (如發行版本、主機名稱、作業系統、安裝日期及其他此類基本資訊) 會安全傳輸至 Sun Connection 資料庫。Sun Connection 資產管理服務可協助您管理 Sun 軟硬體,而更新服務則會通知您最新之可用安全性問題修正、建議更新及增強功能。

Message Queue 4.2 已增加有關 Sun Connection 註冊的下列安裝程式畫面:

Sun Connection 註冊的畫面。

必須已經有 Sun Online 帳號或建立一個帳號,才可進行註冊。若還沒有帳號,安裝程式會提供下列畫面,供您建立 Sun Online 帳號:

建立 Sun Online 帳號的畫面。

您可以在安裝期間使用上述畫面註冊 Message Queue;或等到完成安裝後,再以僅限註冊模式執行安裝程式,如下所示:

# installer -r

僅限註冊模式需要安裝 Message Queue 4.2,且僅會顯示與註冊相關的安裝程式畫面。

MySQL 資料庫的支援

Message Queue 4.2 支援 MySQL 資料庫作為 JDBC 資料存放區。MySQL Cluster Edition 可用作獨立代理程式的 JDBC 資料庫,以及高可用性代理程式叢集所需之高度可用的共用資料存放區。如需有關配置 Message Queue 使用 MySQL 的資訊,請參閱「Sun Java System Message Queue 4.2 Administration Guide」中的「Configuring a JDBC-Based Data Store」,同時另請參閱「Sun Java System Message Queue 4.2 Administration Guide」中的「High-Availability Cluster Properties」

Message Queue 4.1 的新功能

Message Queue 4.1 是次級發行版本,包含數項新功能、一些增強功能,以及錯誤修正。本節說明 4.1 發行版本的新功能,並提供您可以使用的進一步參考資料:

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

高可用性代理程式叢集

Message Queue 4.1 推出高可用性代理程式叢集。與僅提供訊息傳送服務可用性 (若代理程式失敗,可使用其他代理程式提供訊息傳送服務) 的傳統代理程式叢集相較,高可用性代理程式叢集還提供資料可用性 (若代理程式失敗,其他代理程式可使用其永久性訊息與狀態資料以接管訊息傳送工作)。

Message Queue 4.1 中推出的高可用性實作使用共用之 JDBC 資料存放區:代理程式叢集中的每個代理程式不會各自擁有永久資料存放區,而是讓叢集中的所有代理程式共用相同的 JDBC 相容資料庫。若某個代理程式失敗,叢集中的其他代理程式會接管失敗代理程式的訊息路由與傳送。由此,容錯移轉代理程式即可使用共用資料存放區中的資料與狀態資訊。失敗之代理程式的訊息傳送用戶端會重新連線至容錯移轉代理程式,以提供不間斷的訊息傳送服務。

Message Queue 4.1 高可用性實作中所使用的共用 JDBC 存放區本身必須也具備高可用性。若沒有高度可用的資料庫,或者訊息傳送不中斷對您而言不重要,則可繼續使用傳統叢集,其提供不包含資料可用性的服務可用性。

若要配置 Message Queue 4.1 高可用性代理程式叢集,必須為叢集中的每個代理程式指定下列代理程式特性:

若要使用高可用性代理程式叢集實作,必須執行下列作業:

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

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

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

  4. 為叢集中的每個代理程式設定高可用性特性。

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

如需有關高可用性代理程式叢集的概念性討論,以及其與傳統叢集之間的比較,請參閱「Sun Java System Message Queue 4.2 Technical Overview」中的第 4 章「Broker Clusters」。如需有關高可用性代理程式叢集的逐步說明及參考資訊,請參閱「Sun Java System Message Queue 4.2 Administration Guide」中的第 8 章「Managing Broker Clusters」「Sun Java System Message Queue 4.2 Administration Guide」中的「Cluster Configuration Properties」

若搭配 Message Queue 4.0 使用高度可用的資料庫,且想切換成高可用性代理程式叢集,可以使用資料庫管理者公用程式 (imqdbmgr) 轉換為共用的永久資料存放區。另請參閱代理程式叢集,以深入瞭解已知問題與限制。

JAAS 支援

除了檔案式與 LDAP 式內建認證機制之外,Message Queue 4.1 也推出 Java 認證與授權服務 (JAAS) 的支援,可讓您將外部認證機制外掛到代理程式,以認證 Message Queue 用戶端。

如需 JAAS 相容認證服務可用之代理程式資訊的說明,以及如何配置代理程式以使用此類服務的說明,請參閱「Sun Java System Message Queue 4.2 Administration Guide」中的「Using JAAS-Based Authentication」

永久資料存放區格式變更

Message Queue 4.1 已將 JDBC 資料存放區變更為支援高可用性代理程式叢集。因此,JDBC 資料存放區的格式會升級至 410 版。350、370 與 400 版的格式會自動遷移至 410 版。

請注意,由於檔案式永久資料存放區的格式沒有任何變更,因此其格式會保持為 370 版。

代理程式環境配置

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

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

Java ES Monitoring Framework 支援

Message Queue 4.1 推出 Sun Java Enterprise System (Java ES) Monitoring Framework 的支援,可使用共用圖形介面監視 Java ES 元件。此介面利用名為「Sun Java System Monitoring Console」的網路型主控台實作。管理員可使用 [主控台] 檢視效能統計、建立自動監視的規則,以及確認警報。若執行 Message Queue 的同時也執行其他 Java ES 元件,可能會發現使用單一介面管理所有元件比較方便。

如需有關使用 Java ES Monitoring Framework 監視 Message Queue 的資訊,請參閱 XREF。

增強的作業事件管理

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

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

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

在 Message Queue 4.1 中,C 用戶端 (例如 Java 用戶端) 現在可連線至固定代理程式連接埠,而不是由代理程式的連接埠對映器服務動態指定的連接埠。若嘗試通過防火牆,或是若基於某些其他原因需要略過連接埠對映器服務,固定連接埠連線會很有用。

若要配置固定連接埠連線,必須同時配置代理程式與 C 用戶端執行階段 (連線的兩端)。例如,若需要透過 ssljms 將用戶端連線至連接埠 1756,請執行下列作業:


備註 –

MQ_SERVICE_PORT_PROPERTY 連線特性已向下相容至 Message Queue 3.7 Update 2。


Message Queue 4.0 的新功能

Message Queue 4.0 是僅支援 Application Server 9 PE 的次級發行版本。它包含數項新功能、一些增強功能,以及錯誤修正。本節說明此發行版本的新功能:


注意 – 注意 –

4.0 版推出的其中一個變更雖然次要,但可能造成重大改變,亦即停用以指令行指定密碼的選項。因此,您必須如已停用的密碼選項中所述,將所有密碼儲存在檔案中,或在提示時輸入密碼。


JMX 管理 API 的支援

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

如需更多資訊,請參閱「Sun Java System Message Queue 4.2 Developer’s Guide for JMX Clients」

用戶端執行階段記錄

Message Queue 4.0 推出對用戶端執行階段記錄連線與階段作業相關事件的支援。

如需有關用戶端執行階段記錄以及如何加以配置的資訊,請參閱「Java Dev Guide」的第 137 頁。

連線事件通知 API

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

如需有關連線事件以及如何建立事件偵聽程式的資訊,請參閱「Java Dev Guide」的第 96 頁。

代理程式管理增強功能

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

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

顯示有關 JDBC 資料存放區的資訊

在 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.

JDBC 提供者支援

在 Message Queue 4.0 中,現在支援 Apache Derby 10.1.1 版作為 JDBC 資料存放區提供者。

永久資料存放區格式變更

Message Queue 4.0 已變更用於最佳化與支援未來增強功能的 JDBC 資料存放區。因此,JDBC 資料存放區的格式會升級至 400 版。請注意,在 Message Queue 4.0 中,檔案式資料存放區由於沒有任何變更,因此其版本會維持在 370。

其他訊息特性

Message Queue 4.0 增加了兩個新特性,可對置於停用訊息佇列中的所有訊息進行設定。

SSL 支援

自 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

未來發行版本中將停用的功能

未來發行版本中將停用訊息式監視,此功能可讓您使用寫入度量主題目標的度量資訊,以監視代理程式及其目標。

訊息式監視使用代理程式的可配置「度量訊息產生器」,將度量資料寫入 JMS 訊息,然後再根據訊息中包含的度量資訊類型傳送至度量主題目標。日後若要存取此度量資訊,可撰寫用戶端應用程式以訂閱適當的度量主題目標、使用其訊息,再視需要處理資料。

訊息式監視功能已由 MQ 4.0 中實作的 JMX 管理 API 所取代 (請參閱JMX 管理 API 的支援)。JMX API 的涵蓋範圍更廣 (其包含的度量資料比寫入主題目標的度量資料多),且以 JMX 工業標準為依據。

因為 Message Queue 已支援 JMX API,所以沒有理由繼續使用訊息式監視。在正式停用訊息式監視之前,Message Queue 文件會保留有關此功能的資訊。

Message Queue 4.2 與最近發行版本中已修正的錯誤

Message Queue 4.2 包含新的錯誤修正,也包含 Message Queue 4.1 與 Message Queue 4.0 發行版本中已修正的錯誤。

以下各節列出各發行版本中已修正的錯誤:

Message Queue 4.2 中已修正的錯誤

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

表 1–7 Message Queue 4.2 中已修正的錯誤

錯誤 

說明 

6581592 

當以文字模式執行安裝程式或解除安裝程式 (installer –t ) 時,[摘要] 畫面會顯示包含記錄/摘要檔案的目錄,但不會列出這些檔案的名稱。

6585911 

安裝程式的 [JDK 選取] 畫面中包含由安裝程式隨附,且可用於執行安裝程式的 JRE;這是錯誤的。 

6587112 

安裝程式摘要畫面於多位元組語言環境中出現亂碼。 

6587127 

透過參照回覆檔 (installer -a filename -s) 執行安裝程式時,若回覆檔不存在,則錯誤訊息會不一致且不清楚。

6590969 

允許用戶端連線認證中的 DN 使用者名稱格式。 

6594381 

若系統上存在舊版 Message Queue 本土化 RPM,則 Message Queue 4.1 本土化 RPM 的安裝 (在 [多語言套裝軟體] 畫面上選取 [安裝 Message Queue 多語言套裝軟體] 時) 會失敗。 

6599144 

在 Java SE 6 上解除安裝 Message Queue 4.2 時,軟體資訊畫面與解除安裝程式會當機,且畫面會顯示空白與灰色,但 Java SE 5 則沒有此問題。 

6615741 

若原始用戶在回復前關閉,則在已回復之作業事件用戶階段作業中傳送的訊息,即無法重新傳送。 

6629922 

分散式作業事件處理程式無法依正確順序將訊息重新傳送至非使用中的用戶。 

6635130 

代理程式無法在暫停後通知非永久性訊息的產生器繼續進行生產,因為目標已達到記憶體或訊息數上限。 

6641117 

若原始用戶在回復後關閉,則在已回復之作業事件用戶階段作業中傳送的訊息,即無法重新傳送。 

6683897 

即使配置看來順利完成,Message Queue 安裝程式的摘要畫面仍會報告配置錯誤:安裝程式在某些電腦上無法寫入 /dev/sterr

6684069 

在代理程式叢集中,用戶作業事件中若有大量訊息傳送至遠端用戶端,則確定作業事件會失敗。 

6688935 

連接埠對映器讀取逾時的預設值太小。 

6695238 

C 用戶端應用程式無法連線至安裝位置路徑中有空格的代理程式。 

6710168 

若目標暫停兩次且暫停之間沒有重新繼續,則用戶無法再使用訊息。 

6710169 

JMX 作業 ConsumerManagerMonitor.getConsumerInfo 一律會在確認模式傳回 SESSION_TRANSACTED

Message Queue 4.1 中已修正的錯誤

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

表 1–8 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 中已修正的錯誤

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

表 1–9 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 資料庫的支援。 

Message Queue 4.2 的文件更新

本節包含有關 Message Queue 4.2 文件更新的資訊:

相容性問題

本節涵蓋有關 Message Queue 4.2 的相容性問題。

介面穩定性

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

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

下一個 Message Queue 主要發行版本可能會推出變更,而使得目前的 Message Queue 用戶端應用程式與該發行版本不相容。此資訊提供目的是為了完全公開。

Message Queue 4.2 文件集的變更

Message Queue 4.2 文件集包含 Message Queue 4.1 文件集的更新,如下所述:

技術摘要

「Sun Java System Message Queue 4.2 Installation Guide」已更新過以反映 Message Queue 4.2 中的新功能,以及高可用性代理程式叢集的已更新架構。

管理指南

管理指南」已更新過以反映 Message Queue 4.2 中的新功能。

安裝與升級資訊

「Sun Java System Message Queue 4.2 Installation Guide」尚未進行更新,因此未反映 Message Queue 4.2 中的新功能,也就是安裝程式中的新 Sun Connection 註冊功能。此資訊隨附於 Message Queue 版本說明

Java 用戶端的開發者指南

Java 用戶端的開發者指南」尚未更新,因此未反映 Message Queue 4.2 中的新功能。此資訊隨附於 Message Queue 版本說明

C 用戶端的開發者指南

C 用戶端開發指南」尚未更新,因此未反映 Message Queue 4.2 中的新功能。此資訊隨附於 Message Queue 版本說明

JMX 用戶端開發指南

尚未更新,因此未反映 Message Queue 4.2 中的新功能。此資訊隨附於 Message Queue 版本說明

新的目標度量

Message Queue 4.2 包含新的目標度量,可用於監視代理程式叢集中的目標。在代理程式叢集中,目標會傳遞至叢集中的所有代理程式。但是,當產生訊息時,此訊息會儲存在訊息產生器之本機代理程式的目標中,並僅在叢集中其他代理程式的對應目標有使用中的用戶時,才會傳送至此目標。因此,儲存在指定目標的訊息,會與叢集中目標所在的代理程式相關。

換句話說,在代理程式叢集中,儲存在叢集中指定代理程式之指定目標的訊息,會包含直接產生至目標的訊息以及從叢集中遠端代理程式傳送至目標的訊息。瞭解目標中的本機訊息數 (本機產生) 與遠端訊息數 (遠端產生),有時可有助於分析代理程式叢集中的訊息路由與傳遞。

下表顯示 Message Queue 4.2 中包含的兩個新實體目標度量數量。您可透過 imqcmd list dstimqcmd query dst 指令以及透過新 JMX 屬性 (請參閱 目標監視 MBean) 取得新的度量數量。

表 1–10 實體目標度量

度量數 

說明 

是否為記錄檔? 

metrics dst 度量類型

度量主題 

Num messages remote 

產生至叢集中遠端代理程式且目前儲存在記憶體與永久存放區中的訊息數。此數目不包含作業事件中的訊息。 

否 

無法使用 [您可透過 imqcmd query dst 指令取得]

無法使用 

Total message bytes remote 

產生至叢集中遠端代理程式且目前儲存在記憶體與永久存放區中的訊息總大小 (位元組數)。此值不包含作業事件中的訊息。 

否 

無法使用

無法使用 

在 Solaris 10 作業系統上自動啟動代理程式

本節說明如何在 Solaris 10 作業系統上配置自動啟動代理程式。相對於在電腦重新開機時,使用 rc 檔案執行自動啟動代理程式,下列程序改用 Solaris 10 服務管理設備 (SMF)。

如需有關使用服務管理設備的更多資訊,請參閱 Solaris 10 文件。

Procedure在 Solaris 10 作業系統上執行自動啟動代理程式

  1. 將 mqbroker 服務匯入 SMF 儲存庫中。

    # svccfg import /var/svc/manifest/application/sun/mq/mqbroker.xml

  2. 檢查 mqbroker 服務的狀態,以確認匯入是否成功。

    # svcs mqbroker

    輸出結果與下列指令類似:


    STATE STIME FMRI
    disabled 16:22:50 svc:/application/sun/mq/mqbroker:default

    服務一開始會顯示為停用。

  3. 啟用 mqbroker 服務。

    # svcadm enable svc:/application/sun/mq/mqbroker:default

    啟用 mqbroker 服務會啟動 imqbrokerd 程序。重新開機之後會隨即重新啟動代理程式。

  4. 配置 mqbroker 服務以將任何所需的引數傳送至 imqbrokerd 指令。

    使用 options/server_args 特性,將引數傳送至 imqbrokerd。例如,若要增加 -loglevel DEBUGHIGH,請執行下列作業:


    # svccfg
    svc:> select svc:/application/sun/mq/mqbroker
    svc:/application/sun/mq/mqbroker> setprop options/server_args=\"-loglevel DEBUGHIGH\"
    svc:/application/sun/mq/mqbroker> exit

JMX API 的變更

Message Queue 支援 Java Management Extensions (JMX) API,可從 Message Queue 用戶端應用程式以程式設計方式配置及監視代理程式功能。Message Queue 4.2 包含 JMX API 的延伸,以支援發行版本中的新特性與功能。下列 Mbean 已定義新的 JMX 屬性、作業及/或查找鍵值:

ConsumerManager 監視 MBean

下表中的屬性、作業與查找鍵值支援發佈程式或訂閱者的多個目標中所述的功能。

下列屬性的名稱已定義為公用程式類別 com.sun.messaging.jms.management.server.ConsumerAttributes 中的靜態常數。

表 1–11 ConsumerManager 監視屬性

名稱 

類型 

可否設定? 

說明 

NumWildcardConsumers

Integer

否 

與代理程式相關的萬用字元訊息用戶數 

下列作業的名稱已定義為公用程式類別 com.sun.messaging.jms.management.server.ConsumerOperations 中的靜態常數。

表 1–12 ConsumerManager 監視作業

名稱 

參數 

結果類型 

說明 

getConsumerWildcards

無 

String[]

與代理程式相關之目前用戶所使用的萬用字元字串 

getNumWildcardConsumers

萬用字元字串 

Integer

使用指定之萬用字元字串且與代理程式相關的目前用戶數 

下列查找鍵值已定義為公用程式類別 com.sun.messaging.jms.management.server.ConsumerInfo 中的靜態常數。

表 1–13 訊息用戶資訊的查找鍵值

名稱 

值類型 

說明 

DestinationNames

String[]

符合萬用字元用戶所使用之萬用字元的目標名稱 

僅限主題目標。 

Wildcard

Boolean

是否為萬用字元用戶? 

僅限主題目標。 

目標配置 MBean

下表中的屬性支援XML 有效負載訊息的模式驗證中所述的功能。

下列屬性的名稱已定義為公用程式類別 com.sun.messaging.jms.management.server.DestinationAttributes 中的靜態常數。

表 1–14 目標配置屬性

名稱 

類型 

可否設定? 

說明 

ValidateXMLSchemaEnabled

Boolean

是 

是否啟用 XML 模式驗證? 

若設定為 false 或未設定,則目標不會啟用 XML 模式驗證。

XMLSchemaURIList

String

是 

以空格分隔的 XML 模式文件 (XSD) URI 字串清單 

這些 URI 指向 XML 模式驗證 (若已啟用) 所使用的一或多個 XSD 位置。 

若指定多個 URI,請使用雙引號括住此值。 

範例: 

http://foo/flap.xsd http://test.com/test.xsd

若此特性未設定或為空值,且已啟用 XML 驗證,則會使用 XML 文件中指定的 DTD 執行 XML 驗證。 

ReloadXMLSchemaOnFailure

Boolean

是 

是否啟用 [失敗時重新載入 XML 模式]? 

若設定為 False 或未設定,則驗證失敗時不會重新載入模式。 

目標管理員配置 MBean

上述的新目標配置 MBean 屬性支援新功能XML 有效負載訊息的模式驗證,其用途在於使用目標管理員配置 MBean 的 create 作業建立目標。

目標監視 MBean

下表中的第一組屬性支援發佈程式或訂閱者的多個目標中所述的功能,而第二組屬性支援新的目標度量中所述的增強功能。

下列屬性的名稱已定義為公用程式類別 com.sun.messaging.jms.management.server.DestinationAttributes 中的靜態常數。

表 1–15 目標監視屬性

名稱 

類型 

可否設定? 

說明 

NumWildcards

Integer

否 

與目標相關之萬用字元訊息產生器及萬用字元訊息用戶目前的數目 

僅限主題目標。 

NumWildcardProducers

Integer

否 

與目標相關之萬用字元訊息產生器目前的數目 

僅限主題目標。 

NumWildcardConsumers

Integer

否 

與目標相關之萬用字元訊息用戶目前的數目 

僅限主題目標。 

NumMsgsRemote

Long

否 

產生至叢集中遠端代理程式且目前儲存在記憶體與永久存放區中的訊息數。此數目不包含作業事件中的訊息。 

TotalMsgBytesRemote

Long

否 

產生至叢集中遠端代理程式且目前儲存在記憶體與永久存放區中的訊息總大小 (位元組數)。此值不包含作業事件中的訊息。 

下表中的作業支援發佈程式或訂閱者的多個目標中所述的功能。

下列作業的名稱已定義為公用程式類別 com.sun.messaging.jms.management.server.DestinationOperations 中的靜態常數。

表 1–16 目標監視作業

名稱 

參數 

結果類型 

說明 

getWildcards

無 

String[]

與目標相關之目前用戶與產生器所使用的萬用字元字串 

僅限主題目標。 

getConsumerWildcards

無 

String[]

與目標相關之目前用戶所使用的萬用字元字串 

僅限主題目標。 

getProducerWildcards

無 

String[]

與目標相關之目前產生器所使用的萬用字元字串 

僅限主題目標。 

getNumWildcardConsumers

萬用字元字串 

Integer

使用指定萬用字元字串且與目標相關的目前用戶數 

僅限主題目標。 

getNumWildcardProducers

萬用字元字串 

Integer

使用指定萬用字元字串且與目標相關的目前產生器數 

僅限主題目標。 

ProducerManager 監視 MBean

下表中的屬性、作業與查找鍵值支援發佈程式或訂閱者的多個目標中所述的功能。

下列屬性的名稱已定義為公用程式類別 com.sun.messaging.jms.management.server.ProducerAttributes 中的靜態常數。

表 1–17 ProducerManager 監視屬性

名稱 

類型 

可否設定? 

說明 

NumWildcardProducers

Integer

否 

與代理程式相關的萬用字元訊息產生器數 

下列作業的名稱已定義為公用程式類別 com.sun.messaging.jms.management.server.ProducerOperations 中的靜態常數。

表 1–18 ProducerManager 監視作業

名稱 

參數 

結果類型 

說明 

getProducerWildcards

無 

String[]

與代理程式相關之目前產生器所使用的萬用字元字串 

getNumWildcardProducers

萬用字元字串 

Integer

使用指定萬用字元字串且與代理程式相關的目前產生器數 

下列查找鍵值已定義為公用程式類別 com.sun.messaging.jms.management.server.ProducerInfo 中的靜態常數。

表 1–19 訊息產生器的查找鍵值資訊

名稱 

值類型 

說明 

DestinationNames

String[]

符合萬用字元產生器所使用之萬用字元的目標名稱 

僅限主題目標。 

Wildcard

Boolean

是否為萬用字元產生器? 

僅限主題目標。 

用戶端認證的 DN 使用者名稱格式支援

Message Queue 4.2 根據 LDAP 使用者儲存庫,支援用戶端連線認證中的 DN 使用者名稱格式。此支援包含下列新代理程式特性 (及值):

imq.user_repository.ldap.usrformat=dn

此特性可讓代理程式透過從 DN 使用者名稱格式中擷取下列特性所指定的屬性值,以根據 LDAP 使用者儲存庫中的項目,認證用戶端使用者:

imq.user_repository.ldap.uidattr

代理程式使用上述屬性值,作為存取控制作業中的使用者名稱。

例如,若 imq.user_repository.ldap.uidattr=udi 與用戶端認證使用者名稱使用 udi=mquser,ou=People,dc=red,dc=sun,dc=com 格式,則會擷取「mquser」以執行存取控制。

JAAS 認證增強功能

Message Queue 4.2 JAAS 認證支援依據 IP 位址與使用者名稱進行認證。

已知的問題與限制

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

如需目前錯誤的清單、這些錯誤的狀態與解決方法,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.2 版相關的問題。

產品登錄與 Java ES

Message Queue 4.2 與 Message Queue 4.1 類似,由較新的安裝程式所安裝,此安裝程式也會安裝及升級 Message Queue 所需的 Java Enterprise System (Java ES) 共用元件;例如,JDK、NSS、JavaHelp 等等。

此新版 Message Queue 安裝程式與舊版 Java ES 安裝程式 (用於安裝舊版 Message Queue) 無法共用相同的產品登錄。若 Message Queue 安裝程式移除了隨 Java ES 安裝程式所安裝的 Message Queue 版本,並升級至 Message Queue 4.2,則 Java ES 產品登錄的狀態可能會不一致。因此,執行 Java ES 解除安裝程式時,它可能會不慎移除 Message Queue 4.2 以及並非由其安裝的相依共用元件。

升級由 Java ES 安裝程式所安裝的 Message Queue 軟體時,最佳方式如下所示。

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

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

在 Windows 上安裝

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

在 Solaris 上安裝

在 Linux 上安裝

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

在所有平台上安裝

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

安裝程式中的版本異常

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

在 Solaris 平台上,請參閱下表以判斷安裝程式所顯示的 Message Queue 版本。

表 1–20 版本字串翻譯

安裝程式在 Solaris 作業系統上顯示的版本 

對應 Message Queue 版本 

4.2.0.0 

4.2 

4.1.0.2 

4.1 修補程式 2 

4.1.0.1 

4.1 修補程式 1 

4.1.0.0 

4.1 

3.7.2.1 

3.7 UR2 修補程式 1 

3.7.0.2 

3.7 UR2 

3.7.0.1 

3.7 UR1 

3.6.0.0 

3.6 

3.6.0.4 

3.6 SP4 

3.6.0.3 

3.6 SP3 

3.6.0.2 

3.6 SP2 

3.6.0.1 

3.6 SP1 


備註 –

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


在 Linux 平台上,安裝程式顯示的版本編號會使用下列格式。

majorReleaseNumber.minorReleaseNumber-someNumber

例如,3.7–22。這僅表示其為 3.7 發行版本的其中之一,但未指定是哪一個特定版本。若要判斷已安裝的 Message Queue 版本,請執行下列指令:

imqbrokerd -version

本土化問題

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

已停用的密碼選項

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

但是,您可以建立指定相關密碼的密碼檔案,並使用 -passfile 指令選項參照密碼檔案,或僅在指令提示時輸入密碼。

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

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

imq.persist.jdbc.mysql.password=abracadabra

使用密碼檔案的方式可以是下列其中一種。

管理/配置問題

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

代理程式問題

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

代理程式叢集

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

JMX 問題

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

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

SOAP 支援

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

可再分發的檔案

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

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.2 版本說明」,文件號碼為 820-5644。

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

其他 Sun 資源

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