下列問題會影響叢集代理程式。
此版本僅支援完全連線的代理程式叢集。這意味著,叢集中的每個代理程式必須與叢集中的每個其他代理程式直接通訊。如果您要使用 imqbrokerd -cluster 指令行引數連線代理程式,請務必小心以確保包含叢集中的所有代理程式。
使用 HADB 的代理程式無法處理大於 10 MB 的訊息。(錯誤 6531734)
如果用戶端連線至高可用性代理程式,用戶端執行階段會嘗試重新連線直到成功為止 (不論 imqAddressListIterations 的值設定為何)
如果用戶端連線到屬於某個叢集的代理程式,則目前無法使用 QueueBrowser 瀏覽位於該叢集中遠端代理程式的佇列。用戶端僅能瀏覽與代理程式直接連線的佇列內容。用戶端仍可傳送訊息到任何佇列,或是自叢集中任何代理程式的佇列產生訊息;其限制僅會影響瀏覽。
在傳統叢集中,如果需要將 4.1 版代理程式和 3.x 版代理程式組成叢集,您必須為 4.1 版代理程式設定特性 imq.autocreate.queue.maxNumActiveConsumers=1。否則,代理程式將無法建立叢集連線。
轉換成高可用性叢集時,您可以使用 Message Queue 管理員公用程式 (imqdbmgr),將現有的獨立 HADB 永久性資料存放區轉換成共用 HADB 存放區。指令如下。
imqdbmgr upgrade hastore
您可以在下列情況中使用此公用程式。
從 4.0 版獨立 HADB 存放區改用 4.1 版共用 HADB 存放區。在此情況中,代理程式會自動升級存放區。您接著可執行 imqdbmgr 指令,將升級的資料存放區轉換成共用存放區。
從 4.1 版獨立 HADB 存放區改用共用 HADB 存放區。在此情況中,僅需要執行上述的 imqdbmgr 指令即可將資料存放區轉換成共用存放區。
由於此指令僅支援 HADB 存放區的轉換,因此無法用於將檔案式存放區或其他 JDBC 存放區轉換成共用 HADB 存放區。若之前執行 Message Queue 3.x 版,則為了使用高可用性功能,必須建立 HADB 存放區,然後手動將您的資料遷移至該存放區。
若存放區存留的訊息超出 10,000 則,則使用指令 imqdbmgr upgrade hastore 轉換成 HADB 存放區可能會失敗,並顯示訊息「設定太多鎖定」。(錯誤 ID 6588856)
(解決方法) 使用下列指令增加鎖定數。
hadbm set NumberOfLocks=<desiredNumber>
如需其他資訊,請參閱「Sun Java System Application Server 9.1 Enterprise Edition Troubleshooting Guide」中的「HADB Problems」。
如果某項作業事件確定了 500 則以上的遠端訊息,則代理程式可能會傳回錯誤訊息「HADB-E-12815:表格記憶體空間已用盡。」 (錯誤 ID 6550483)
如需其他資訊,請參閱「Sun Java System Application Server 9.1 Enterprise Edition Troubleshooting Guide」中的「HADB Problems」。
在代理程式叢集中,代理程式會將訊息排入尚未啟動之遠端連線的佇列中 (錯誤 ID 4951010)。
解決方法:只要啟動連線,用戶便會收到訊息。如果用戶連線關閉,訊息會重新傳送至其他的用戶。
在一項作業事件中使用多則遠端代理程式傳送的訊息時,代理程式可能會記錄下列錯誤訊息。該訊息無害,可以忽略:
[26/Jul/2007:13:18:27 PDT] WARNING [B2117]: Message acknowledgement failed from mq://129.145.130.95:7677/?instName=a&brokerSessionUID=3209681167602264320: ackStatus = NOT_FOUND(404)\ Reason = Update remote transaction state to COMMITED(6): transaction 3534784765719091968 not found, the transaction may have already been committed. AckType = MSG_CONSUMED MessageBrokerSession = 3209681167602264320 TransactionID = 3534784765719091968 SysMessageID = 8-129.145.130.95(95:fd:93:91:ec:a0)-33220-1185481094690 ConsumerUID = 3534784765719133952\par [26/Jul/2007:13:18:27 PDT] WARNING Notify commit transaction [8-129.145.130.95(95:fd:93:91:ec:a0)-33220-1185481094690, [consumer:3534784765719133952, type=NONE]] TUID=3534784765719091968 got response: com.sun.messaging.jmq.jmsserver.util.BrokerException: Update remote transaction state to COMMITED(6): transaction 3534784765719091968 not found, the transaction may have already been committed.: com.sun.messaging.jmq.jmsserver.util.BrokerException: Update remote transaction state to COMMITED(6): transaction 3534784765719091968 not found, the transaction may have already been committed.r
在一項作業事件中,如果 imq.txn.reapLimit 特性的值比該作業事件的遠端訊息數小,則會在通知訊息主機代理程式確定該作業事件中的後續訊息時,記錄此訊息。(錯誤 6585449)
解決方法:若要避免此訊息,請增加 imq.txn.reapLimit 特性的值。