本節包含 Message Queue 3.7 UR1 的已知問題清單。涵蓋以下的產品區域:
如需目前錯誤、錯誤狀態以及解決方法的清單,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。
使用 SSL 的連線服務目前限制為僅支援自我簽名的伺服器憑證,亦即主機信任模式。
當使用 HTTP 傳輸的 JMS 用戶端突然終止 (例如,使用 Ctrl-C) 時,代理程式將需要大約一分鐘來釋放用戶端連線以及所有相關的資源。
如果一分鐘內有其他用戶端實例啟動,且其嘗試使用相同的 ClientID、長期訂閱或佇列,則可能會收到「用戶端 ID 已在使用」異常。這不是實際發生的問題,它只是上述終止程序的副作用。如果用戶端在延遲大約一分鐘後啟動,則所有作業均可正常執行。
在 Message Queue 3.7 UR1 中,將 LDAP 伺服器用為使用者儲存庫的範例代理程式配置,會列在 config.properties 檔案的註釋區域中,而 default.properties 檔案中的 LDAP 使用者儲存庫範例則會標示為註釋。
若之前依賴在 default.properties 檔案中指定的範例 LDAP 使用者儲存庫特性中之任何特性值,則當 JMS 應用程式用戶端在嘗試建立 JMS 連線時,會收到安全性異常。這會在升級至 Message Queue 3.7 UR1 後發生。
當 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 管理指南」中的第 7 章「Managing Security」內指示,設定代理程式特性 imq.user_repository.ldap.uidattr。
下列項目與使用代理程式叢集相關。
此版本僅支援完全連線的代理程式叢集。這意味著,叢集中的每個代理程式必須與叢集中的每個其他代理程式直接通訊。如果您要使用 imqbrokerd -cluster 指令行引數連線代理程式,請務必小心以確保包含叢集中的所有代理程式。
如果用戶端連線到屬於某個叢集的代理程式,則目前無法使用 QueueBrowser 瀏覽位於該叢集中遠端代理程式的佇列。用戶端僅能瀏覽與代理程式直接連線的佇列內容。用戶端仍可傳送訊息到任何佇列,或是自叢集中任何代理程式的佇列產生訊息;其限制僅會影響瀏覽。
若代理程式叢集中未使用主代理程式,則代理程式儲存並新增到叢集的永久性資訊,不會傳播到叢集內的其他代理程式。
已中斷叢集內代理程式的連線 (錯誤 ID 6377527)。
發生此問題的原因之一是代理程式位址 (中斷連線的位址) 遭解譯成迴路 IP 位址 (127.0.0.1)。
解決方法:確保代理程式位址未解譯成迴路 IP 位址。
在代理程式叢集中,代理程式會將訊息排入尚未啟動之遠端連線的佇列中 (錯誤 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 代理程式。
imqbrokerd —license 指令顯示已過時或重複的資訊。本指令會顯示已不再支援的試用授權相關資訊 (錯誤 ID 6489711),以及顯示重複的 unl 授權相關資訊 (錯誤 ID 6441015)。
解決方法:這類問題不會影響功能,不需要解決方法。
代理程式不再為停用的訊息佇列執行 1000 條訊息的預設限制;它會持續增加訊息至停用的訊息佇列,直到代理程式的記憶體不足為止。(錯誤 ID 6502744)
解決方法:將停用的訊息佇列限制重設為 1001,或重設為 1000 以外的任何值。
HTTPS createQueueConnection 偶爾會在 Windows 2000 上丟出異常 (錯誤 ID 4953348)。
解決方法:重試連線。
使用 Ctrl-C 關閉代理程式時,可能會在存放區關閉之後將作業事件清除 (錯誤 ID 4934446)。
代理程式可能顯示錯誤與下列原因:「關閉存放區之後存取儲存方法。」,因為訊息或作業事件正在處理時,代理程式卻關閉。
解決方法:您可忽略此錯誤訊息;代理程式只是正確通知用戶已出現的任何錯誤。該錯誤不會影響系統的可靠性。
當永久性存放區開啟過多目標時,代理程式會變得無法存取。(錯誤 ID 4953354)。
解決方法:這種情況是由於代理程式達到系統開啟檔案描述元限制引起的。在 Solaris 和 Linux 上使用 ulimit 指令來增加檔案描述元的限制。
目標若已銷毀,會孤立用戶 (錯誤 ID 5060787)。
目標若已銷毀,會孤立使用中的用戶。一旦使用者被孤立,則無法再接收訊息 (即使目標重新建立)。
解決方法:此問題沒有解決方法。
無法使用 JMSMessageID 選取訊息 (錯誤 ID 6196233)。
解決方法:將選擇器從以下表示式
JMSMessageID = "ID:message-id-string"
變更為以下表示式
JMSMessageID IN (’ID:message-id-string’, ’message-id-string’)
Message Queue 佇列瀏覽器顯示未確定的訊息 (錯誤 ID 6264003)。
瀏覽佇列內容時,作業事件中已產生但尚未確定的訊息,可能出現在佇列瀏覽器列舉中。
解決方法:此問題沒有解決方法。
在確定時若代理程式故障,訊息可能無法使用 (錯誤 ID 6467874)。
在極少數的情況中,若代理程式故障,則作業事件的訊息可能無法提供給客戶。尤其是在「確定」處理時若出現一個小視窗,可能導致訊息卡在永久性存放區中。發生這種情況時,將在故障後啟動代理程式時,顯示下列訊息。
[06/Sep/2006:10:11:11 PDT] ERROR [B2085]: Loading Destination q0 [Queue] failed. Messages stored on that destination will not be available.: > com.sun.messaging.jmq.jmsserver.util.BrokerException: The message 8-129.145.180.87(b8:8b:26:15:41:26)-38998-1157562551217 has an associated acknowledgement list already.
解決方法:此問題沒有解決方法。
Message Queue 3.7 UR1 後期測試版沒有獨立產品。如需此發行版本,必須使用 Java Enterprise System 安裝程式安裝 Message Queue,並參閱「Sun Java System Installation Guide」以取得相關指示。