下列問題影響代理程式叢集。
此版本僅支援完全連線的代理程式叢集。這意味著,叢集中的每個代理程式必須與叢集中的每個其他代理程式直接通訊。若要使用 imqbrokerd -cluster 指令行引數將代理程式連線至傳統叢集,請務必小心以確保會包含叢集中的所有代理程式。
若用戶端連線至強化之代理程式叢集中的代理程式,用戶端執行階段會嘗試重新連線,直到成功為止 (將忽略連線工廠屬性 imqAddressListIterations 的值)。
用戶端僅可瀏覽位於本機代理程式之佇列的內容。用戶端仍可傳送訊息到任何佇列,或是使用來自叢集中任何佇列的訊息;此限制僅會影響瀏覽。
在包含 4.3 版代理程式的傳統叢集中,所有代理程式均須為 3.5 版或更新版本。
Message Queue 4.3、4.2 及 4.1 代理程式預設無法在叢集中與 Message Queue 3.7 或 3.6 代理程式互通,因為 imq.autocreate.queue.maxNumActiveConsumers 的預設值在這些版本中各不相同。(錯誤 6716400)
解決方法:請確定所有代理程式都具有相同的 imq.autocreate.queue.maxNumActiveConsumers 異動值,通常將 Message Queue 4.3、4.2 及 4.1 的配置變更成符合 3.7 或 3.6 代理程式所用者即可 (預設是從值 -1 變成舊版的預設值 1)。
若要將 Message Queue 4.3 (或 4.x) 代理程式增加至 Message Queue 3.x 代理程式叢集,主代理程式必須在執行中。(錯誤 6763796)
從傳統叢集轉換成強化的叢集時,可使用 Message Queue 資料庫管理者公用程式 (imqdbmgr),將現有的獨立式 JDBC 資料存放區轉換成共用的 JDBC 資料存放區,如「Sun GlassFish Message Queue 4.4 Administration Guide」中的「Cluster Conversion: JDBC-Based Data Store」所述。
使用 HADB 的代理程式無法處理大於 10 MB 的訊息。(錯誤 6531734)
若存放區存留的訊息超出 10,000 則,則使用指令 imqdbmgr upgrade hastore 轉換成 HADB 存放區可能會失敗,並顯示訊息「設定太多鎖定」。(錯誤 6588856)
解決方法:使用下列指令增加鎖定數。
hadbm set NumberOfLocks=<desiredNumber>
如需其他資訊,請參閱「Sun Java System Application Server 9.1 Enterprise Edition Troubleshooting Guide」中的「HADB Problems」。
若某項作業事件確定了 500 則以上的遠端訊息,則代理程式可能會傳回錯誤訊息「HADB-E-12815: Table memory space exhausted」(HADB-E-12815:表格記憶體空間已經用盡)。(錯誤 6550483)
如需其他資訊,請參閱「Sun Java System Application Server 9.1 Enterprise Edition Troubleshooting Guide」中的「HADB Problems」。
在代理程式叢集中,代理程式會將訊息排入尚未開啟之遠端連線的佇列中。(錯誤 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 特性的值。