Sun GlassFish Message Queue 4.4 Update 1 版本說明

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

Message Queue 4.4 Update 1 包含新的錯誤修正,且合併 Message Queue 4.x 系列舊版中已修正的錯誤。

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

Message Queue 4.4 Update 1 中已修正的錯誤

下表說明 Message Queue 4.4 Update 1 中已修正的錯誤。某些問題標有「(OpenMQ)」,這表示此問題已在 Open Message Queue 開放原始碼專案 (Sun GlassFish Message Queue 以它為基礎) 中得到修正。

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

錯誤 

說明 

6590909 

當覆寫位址清單時,DIRECT 模式 MDB 未連線至遠端代理程式 

6616704 

當在階段作業中建立多個用戶時,代理程式記憶體會增加 

6745761 

當在同一 XA TX 中使用兩個連線時 (使用 JMSJCA),XAResource.isSameRM() 應傳回 true 

6745763 

當在同一 XA TX 中使用兩個連線時 (JMSRA DIRECT 模式),XAResource.isSameRM() 應傳回 true 

6745768 

當在同一 XA TX 中使用兩個連線時 (JMSRA LOCAL/REMOTE),XAResource.isSameRM() 應傳回 true 

6760450 

如果在未停止 MQ (GF) 實例的情況下重新開機,訊息儲存區會損毀 

6766241 

UMS:SendMsg.html AJAX 範例將 /ums 作為預設環境根目錄使用。它應使用 /imqums 

6766852 

DirectXAResource 將代理程式 CONFLICT 狀態轉換為「TxID 已在使用」 

6799428 

DMQ 中的非永久訊息/非持續儲存的訊息無法使用,但可以瀏覽。 

6799428 

DMQ 中的非永久訊息/非持續儲存的訊息無法使用,但可以瀏覽。 

6809353 

使用 posgtresql (8.1) 的 openmq 4.3 HA 無法正常運作 (imqbrokerd 無法啟動 ) 

6809750 

用戶端 ID 連線無法透過 JMSRA 執行連線池儲存。 

6812198 

使用 MQ 主題度量進行監視時,會擲回 Classcast 異常 

6832000 

MQ reapExcessConnection JDBC 連線使 CPU 高速運轉 

6833109 

MQClusterMonitor JMX 範例應用程式會在使用 JDK6 的 AIX 上擲回異常 

6835420 

NoGCDefault 的預設值計算錯誤。當記憶體不足時,可能會導致 GC 過多。 

6852018 

錯誤訊息「無法增加長期用戶 {0}。連線中未設定用戶端 ID。」會產生誤導 

6856991 

在代理程式重新啟動,然後回復長期用戶 PREPARED 作業事件後,發生 NullPointerException 

6874125 

警告:MQJMSRA_DC2001:connectionId=555670328604044289:_destroy():對尚未關閉的連線呼叫 

6878945 

RFE:JMSBridge:可讓您指定使用者名稱/密碼以從連線工廠建立連線 

6881493 

不應該為 HA 代理程式儲存管理暫時目標 

6881753 

RFE JMSBridge:可讓您在將每則訊息傳送至目標之前,以 jmsbridge 名稱對其進行標記 

6884673 

MQ 4.4 代理程式無法與 MQ 3.7/3.6 代理程式建立叢集連線 

6886390 

當從 DMQ 使用訊息時,傳送至 DMQ 的永久/Txn 發佈的訊息可能會導致「找不到 mq.sys.dmq」錯誤 

6886515 

當使用 JMX 來刪除內嵌式代理程式中的目標時,發生 AccessControlException 

6890628 

設定代理程式特性「imq.autocreate.destination.isLocalOnly=true」未生效 

6891615 

當在 glassfish 中執行代理程式 4.3 時,選擇器並非始終正常運作 

6891624 

「imqcmd list dst」中的「Remote」訊息數可能變得大於「Count」 

6891629 

當選擇器中發生算數異常時,需要使用者容易讀懂的訊息 

6891717 

若 imq.transaction.autorollback=true,則未清除自動回復 PREPARED 確認會導致 TransactionAckExistEx 

6891802 

接管遠端 tx 確認之後重新啟動代理程式時,顯示「[B4061]:無法使用作業事件 ID...目前正在使用中」 

6892512 

記憶體發生錯誤:呼叫 tempDest.delete() 時,未將「臨時目標」從連線中移除 

6895040 

如果主代理程式有臨時目標,從屬代理程式在 uidprefix 鎖定逾時後,無法啟動 uidprefix 

6896230 

在與從屬代理程式同步之後重新啟動主代理程式時,於主代理程式上建立的新用戶無法傳播給所有從屬代理程式 

6896764 

TransactionAcknowledgement 的 equals 方法不正確。 

6898355 

重新啟動代理程式時,在叢集管理員初始化過程中會重設接管鎖定,且不等待接管完成 

6901405 

RFE:記錄 JDBC 供應商資訊與供應商內容 (若已指定) 

16 (OpenMQ) 

當在 glassfish 中執行代理程式 4.3 時,選擇器並非始終正常運作 

17 (OpenMQ) 

使用 posgtresql (8.1) 的 openmq 4.3 HA 無法正常運作 (imqbrokerd 無法啟動 ) 

22 (OpenMQ) 

安裝程式參考非現有二進位檔案,且失敗 

25 (OpenMQ) 

建立 TemporaryTopic 時,記憶體發生錯誤。 

29 (OpenMQ) 

代理程式隔離 

30 (OpenMQ) 

「imqcmd list dst」中的「Remote」訊息數可能變得大於「Count」 

31 (OpenMQ) 

當選擇器中發生算數異常時,需要使用者容易讀懂的訊息 

32 (OpenMQ) 

修正整數 -> 長整數的溢位 

33 (OpenMQ) 

OpenMQ 安裝程式:在日文語言環境下執行時,發生「無效的 SwiXML 描述元」錯誤 

Message Queue 4.4 中已修正的錯誤

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

表 1–8 Message Queue 4.4 中已修正的錯誤

錯誤 

說明 

6242247 

若兩個同名的代理程式位在同一部機器上,MQ 叢集中的主代理程式會啟動並當機。  

6760937 

代理程式若重新啟動,不會重新連線至 DB。  

6763252 

確認已過期/移除的訊息時,代理程式應該記錄 NPE 以外的有意義訊息 

6765410 

主代理程式會傳送 2 次本機 Interest,造成已在使用中之長期訂閱的從屬異常。 

6796506 

接收遠端 PREPARE 回覆發生逾時狀況時,遠端 PREPARED 訊息未在回復之後重新傳送。 

6807708 

如果主代理程式未執行,TemporaryDestination.delete 失敗 

6812037 

RFE:如果 MQMessageListenerFunc 傳回錯誤,將 MQ_CALLBACK_RUNTIME_ERROR 傳至 afterMessageDelivery 

6812755 

如果 before/afterMessageDelivery 回呼傳回錯誤,FINE 層級記錄訊息應為「警告」 

6816023 

Message.setStringProperty() 異常無法顯示「非法字元」異常的特性名稱 

6819095 

RFE:叢集應該支援設定輸入/輸出串流緩衝區大小與 TcpNoDelay 

6820585 

在等候遠端代理程式完成時,「imqcmd list txn」無法顯示 COMMITTED 叢集作業事件 

6820588 

消耗本機與遠端訊息的叢集作業事件在等待狀態下仍保持 COMMITTED 

6821639 

在 MQRA-DIRECT 模式之 AS 回復期間,回復/確定作業事件時發生 NPE 

6823364 

RFE:將 C-API 編譯器升級為 Solaris 適用的 Sun Studio 12 

6829113 

當 Tuxedo TM 在負載太大的情況下回復逾時的作業事件時,發生 ConcurrentModificationException 

6832197 

如果用戶端未要求 ackack,非作業事件性的遠端確認不應該等候遠端回覆 

6834735 

當 Tuxedo TM 在 START 狀態下逾時 txn 時,收到容易造成混淆的記錄訊息「未預期的代理程式內部錯誤」 

6836364 

若萬用字元用戶的主題建立於用戶之前,該用戶就不會接收遠端訊息。  

6836691 

HA(JCAPS):XA 接收器回復然後確定訊息之後,接收時發生「訊息已移除」異常 

6836749 

HA(JCAPS):在 1 項長期訂閱回復之後才確定訊息,再次接收訊息時即會發生「存放區中已存在確認」的異常狀況。 

6837671 

HA(JCAPS):XAResourceImpl.rollback 在成功確定後不停重新傳送已確定的訊息 

6839193 

RFE:將 C++ 編譯器升級為 Visual Studio 2008 SP1 

6845625 

當不斷重複建立/關閉遠端用戶時,代理程式進入低記憶體的狀態 

6852207 

將訊息傳送至遠端代理程式時發生的 NPE 導致遠端代理程式在讀取訊息封包時「無法處理訊息」 

6853822 

當結束 FAILED txn 時,收到容易造成混淆的異常訊息「無法執行 END_TRANSACTION」 

6854142 

每 3 分鐘對遠端代理程式報告一次「等待叢集連線」「已關閉叢集連線」 

6858121 

如果遠端 txn 存在,關於「imqcmd list txn」的代理程式記錄中存在容易造成混淆的警告「不明作業事件」 

6858488 

如果遠端參與者代理程式移除其 COMMITTED tx,COMMITTED txn 不會從 txn 本機代理程式中移除 

6858905 

Consumer.destroyConsumer 中的 ConcurrentModificationException  

6861362 

RFE:JMSBridge:支援將目標物件的目標自動對映至來源 Message.getJMSDestination 

6861528 

RFE:JMSBridge:允許 MessageTransformer.transform() 將訊息分支到目標物件中的不同目標 

6861653 

傳送過多叢集 txn 資訊以確定較高 txn 負載之下不完全中斷的遠端代理程式 

6862413 

容易造成混淆的記錄訊息「可在 60 秒內連線至 mq://xxx.xxx.xx.xx:pppp/ ...」 

6863867 

如果存在來自中斷的遠端代理程式之擱置 COMMITTED,HA 代理程式重新啟動時會發生 MissingResourceException 

6867596 

如果代理程式再次重新啟動,在代理程式上次重新啟動之後恢復的 PREPARED txn 會回到 PREPARED 狀態 

6868525 

建立連結時將臨時目標轉寄至遠端代理程式會導致發生 NullPointerException 

6868578 

某些廣播/單點傳送不檢查連結是否已建立,因此干擾連結訊號交換並導致連結中斷 

6871612 

HA:當在擱置代理程式中斷的情況下消耗遠端訊息時,會產生記錄訊息「無法通知作業事件完成..」 

6886391 

如果已將訊息移除,確認訊息會導致發生 NullPointerException 

Message Queue 4.3 中已修正的錯誤

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

表 1–9 Message Queue 4 中已修正的錯誤。3

錯誤 

說明 

6634033 

叢集協定不會在建立用戶端時傳播 imqConsumerFlowLimit 值,以移除代理程式。

6713012 

如果在重新啟動遠端代理程式時銷毀叢集中代理程式上的用戶,可能會造成無法傳送部分訊息。 

6727555 

代理程式記錄訊息「已超過每個訊息的位元組上限」的實際訊息大小和 [max bytes per message] 值對調。

6737404 

JMX 度量必須提供已從目標 (主題及佇列) 派送,但尚未傳送至用戶的訊息計數。 

6740568 

當單一作業事件中使用太多訊息時,代理程式會丟出異常。 

6758524 

列出長期訂閱項目的 (imqcmd list dur -d "foo.*") 指令,不接受目標名稱中有萬用字元。

6758952 

設定 imq.portmapper.hostname=localhost 會造成代理程式無法連入叢集。

6758817 

設定 imq.cluster.hostname=localhost (不建議) 會造成不同機器上的代理程式無法連入叢集。

Message Queue 4.2 中已修正的錯誤

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

表 1–10 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–11 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–12 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 

無法設定 ClientID 特性 (屬於TopicConnectionFactory

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 資料庫的支援。