本節包含 Message Queue 3.7 UR1 的已知問題清單。涵蓋以下的產品區域:
如需目前錯誤、錯誤狀態以及解決方法的清單,Java Developer ConnectionSM 成員請檢視 Java Developer Connection 網站上的「Bug Parade」頁面,網址為 http://bugs.sun.com/bugdatabase/index.jsp。在您報告新的錯誤之前,請先檢視此頁面。雖然此頁面未列出所有的 Message Queue 錯誤,但若想知道某一問題是否已有人報告,這會是個不錯的起點。
可免費獲得 Java Developer Connection 成員資格,但需要註冊。Sun 的「For Developers」網頁上會提供有關如何成為 Java Developer Connection 成員的詳細資訊。
若要報告新的錯誤或提交功能請求,請將電子郵件傳送至 imq-feedback@sun.com。
使用 SSL 的連線服務目前限制為僅支援自我簽署的伺服器憑證,亦即主機信任模式。
當使用 HTTP 傳輸的 JMS 用戶端突然終止 (例如,使用 Ctrl-C) 時,代理程式將需要大約一分鐘來釋放用戶端連線以及所有相關的資源。
如果一分鐘內有其他用戶端實例啟動,且其嘗試使用相同的 ClientID、長期訂閱或佇列,則可能會收到「用戶端 ID 已在使用」異常。此異常只是上述終止程序的副作用。如果用戶端在延遲大約一分鐘之後啟動,則不會發生任何問題。
在 Message Queue 3.7 UR1 中,將 LDAP 伺服器當成使用者儲存庫使用的代理程式配置範例,會列在 config.properties 的註釋區中。default.properties 檔案中的 LDAP 使用者儲存庫範例則會標示為註釋。
若之前使用的特性值,屬於 default.properties 檔案中指定的任何範例 LDAP 使用者儲存庫特性,一旦您升級到 Message Queue3.7 UR1 之後,JMS 應用程式用戶端在嘗試建立 JMS 連線時,會收到安全性異常。
當 JMS 用戶端嘗試連線到 Message Queue 3.7 UR1 代理程式時,會將錯誤記錄到您的代理程式記錄檔中,同時 JMS 用戶端亦會收到下列異常:
SecurityException. 20/Aug/2004:11:16:41 PDT] ERROR [B4064]: Ldap repository ldap property .uidattr not defined for authentication type basic:com.sun.messaging.jmq.auth.LoginException: [B4064]: Ldap repository ldap property .uidattr not defined for authentication type basic
解決方法:遵照「Sun Java System Message Queue 3.7 UR1 Administration Guide」中的第 7 章「Managing Security」中的指示,設定代理程式特性 imq.user_repository.ldap.uidattr。
下列項目與使用代理程式叢集相關。
此版本僅支援完全連線的代理程式叢集。這意味著叢集中的每個代理程式都必須能互相直接通訊。若要使用 imqbrokerd -cluster 指令行引數來使代理程式互相連線,請確保叢集中的所有代理程式都包括在內。
如果用戶端連線到隸屬於某叢集的代理程式,則目前無法使用 QueueBrowser 瀏覽位於該叢集中遠端代理程式的佇列。用戶端僅能瀏覽與此用戶端直接連線之代理程式中的佇列內容。用戶端仍可傳送訊息到任何佇列,或是使用叢集中任何代理程式的佇列中訊息。此限制只會影響瀏覽。
若代理程式叢集中未使用主代理程式,則代理程式儲存並新增到叢集的永久性資訊,不會傳播到叢集內的其他代理程式。
在代理程式叢集中,代理程式會將訊息排入尚未啟動之遠端連線的佇列中 (錯誤 ID 4951010)。
解決方法:只要啟動連線,用戶便會收到訊息。如果用戶連線關閉,訊息會重新傳送至其他用戶。
下列問題與 Message Queue 的管理及配置相關。
Windows 機器上的 CLASSPATH 中若包含雙引號,imqadmin 與 imqobjmgr 公用程式就會丟出錯誤 (錯誤 ID 5060769)
解決方法:您可忽略此錯誤訊息。代理程式只是正確通知使用者已出現的任何錯誤。該錯誤不會影響系統的穩定性。
若提供的值包含空格,則所有 Solaris 與 Windows 程序檔中的 -javahome 選項均無法使用 (錯誤 ID 4683029)。
Message Queue 指令與公用程式使用 javahome 選項,以指定使用哪個替代的 Java 2 相容執行階段。但是,替代 Java 執行階段的路徑名稱不得包含空格。例如:
Windows: C:/jdk 1.4
Solaris: /work/java 1.4
解決方法:將 Java 執行階段安裝在不包含空格的位置或路徑中。
imqQueueBrowserMaxMessagesPerRetrieve 屬性指定瀏覽佇列目標內容時,用戶端執行階段一次可擷取的最大訊息數。用戶端應用程式始終會擷取佇列上的所有訊息。因此,imqQueueBrowserMaxMessagesPerRetrieve 屬性只影響如何將佇列中的訊息分割以便傳送至用戶端執行階段:是要分為數目少但內容多的資料塊,還是數目多但內容少的資料塊。此屬性不會影響所瀏覽的訊息總數。變更此屬性的值可能會影響效能,但不會導致用戶端應用程式取得更多或更少的資料 (錯誤 ID 6387631)。
下列問題會影響 Message Queue 代理程式。
HTTPS createQueueConnection 偶爾會在 Windows 2000 上丟出異常 (錯誤 ID 4953348)。
解決方法:重試連線。
使用 Ctrl-C 關閉代理程式時,可能會在存放區關閉之後將作業事件清除 (錯誤 ID 4934446)。
如果正在處理訊息或作業事件時關閉代理程式,代理程式可能顯示錯誤與下列訊息:「關閉存放區之後存取儲存方法。」
解決方法:您可以忽略此錯誤訊息。代理程式只是正確通知使用者已出現的任何錯誤。該錯誤不會影響系統的穩定性。
目標若已銷毀,則用戶會受到孤立 (錯誤 ID 5060787)。
目標若已銷毀,則使用中的用戶會受到孤立。一旦用戶遭到孤立,就無法再接收訊息 (即使已重新建立目標)。
解決方法:無。
無法使用 JMSMessageID 來選取訊息 (錯誤 ID 6196233)。
將選擇器從以下表示式
JMSMessageID = "ID:message-id-string"
變更為以下表示式
JMSMessageID IN (’ID:message-id-string’, ’message-id-string’)
Message Queue 3.7 UR1 沒有獨立產品。如需此發行版本,必須使用 Java Enterprise System 安裝程式安裝 Message Queue。請參閱「Sun Java System Installation Guide」以取得相關指示。
Message Queue menu->Index 顯示不正確的產品文件 URL 和讀我檔案位置 (錯誤 ID 6515574)
說明:當使用者從 Windows [開始] 功能表的 [Message Queue] 項目選取文件時,顯示舊版的文件。
解決方法:從 http://docs.sun.com/app/docs/coll/1307.2 和 http://docs.sun.com/app/docs/coll/1421.2 存取文件。
控制台的 [新增或移除程式] 列出 Sun Java Enterprise System,而非 Message Queue。
檔案 Config_MQ.txt 包含不正確的資訊。以下項目會修正部分錯誤:
Message Queue 不提供 [自動配置] 和 [手動配置] 選項,而且不可設定管理員密碼。
[自動配置] 選項會自動將 Message Queue 代理程式當成 Windows 服務進行安裝和啟動。
[手動配置] 選項可供您安裝 Message Queue 代理程式,但不會當成 Windows 服務來啟動。
嘗試在磁碟空間不足的磁碟上安裝時,出現的錯誤訊息內容不明確。例如,「Error: -1603 Fatal error during installation.」
在安裝期間,mq/bin 未增加到路徑 (錯誤 ID 6515557)
說明:無法從 Windows 指令提示符號找到 Message Queue 可執行檔。例如,鍵入 imqcmd 會觸發以下錯誤:無法將 'imqcmd' 識別為內部/外部指令、可操作的程式或批次檔。
解決方法:編輯 PATH 變數,亦即加入 install-MQ-directory/bin,或者從 install-MQ-directory/bin 目錄執行應用程式。
Message Queue 安裝不支援自動安裝共用元件。
解決方法:使用 JDK 版本 1.6.0 (1.6.0 中的 SOAP 元件),或者在 Windows 上安裝 Application Server (此舉會安裝 SOAP 共用元件) 。