Sun Java System Message Queue 3.7 UR1 管理指南

訊息未送達用戶

徵兆:

可能原因:

可能原因:限制運作方式導致訊息在代理程式上被刪除。

目標記憶體中的訊息數目或訊息容量達到所配置的限制時,代理程式會嘗試節省記憶體資源。達到這些限制時,代理程式會採用 3 個可配置的運作方式,並因此導致訊息遺失:

若要確認此問題的原因:停用的訊息佇列包含訊息中所描述,檢查停用的訊息佇列。尤其必須遵照「訊息數目或訊息容量超出目標限制」中的指示。尋找 REMOVE_OLDEST REMOVE_LOW_PRIORITY 原因。

若要解決此問題:增加目標限制。例如:

imqcmd update dst -n MyDest - o maxNumMsgs=1000

可能原因:訊息的逾時值過期。

代理程式會刪除逾時值過期的訊息。如果目標積存了太多的訊息,則可能會刪除存在時間值過短的訊息。

若要確認此問題的原因:使用 QBrowser 示範應用程式,查看停用的訊息佇列內容及訊息是否逾時。如需 QBrowser 示範程式在特定平台上的位置,請參閱附錄 AMessage QueueTM 資料的特定平台位置,查看表格中的「應用程式範例與位置」。

以下是 Windows 平台上的呼叫範例:

cd \MessageQueue3\demo\applications\qbrowser java QBrowser

QBrowser 主視窗出現時,請選擇佇列名稱 mq.sys.dmq,然後按一下 [瀏覽]。會出現類似下面的清單:

QBrowser 顯示 mq.sys.dmq 的訊息。每個訊息都有編號、時間標記、類型、模式和優先權。

在任何訊息上連按兩下,即可顯示此訊息的詳細資訊。

訊息的詳細資訊視窗。上方窗格顯示訊息,中間窗格顯示訊息特性,下方窗格包含訊息。

請注意訊息 JMS_SUN_DMQ_UNDELIVERED_REASON 特性的值是否為 EXPIRED

若要解決此問題:連絡應用程式開發者並增加使用期限值。

可能原因:時鐘不同步。

如果時鐘不同步,代理程式計算訊息的使用期限會發生錯誤,如此會導致訊息逾時並被刪除。

若要確認此問題的原因:查看代理程式記錄檔中有無下列訊息:B2102B2103B2104。這些訊息都報告偵測到時鐘可能不準。

若要解決此問題:準備系統資源中所述,檢查有無執行時間同步化程式。

可能原因:訊息使用用戶端無法啟動連線上的訊息傳送。

在用戶端程式碼建立連線並啟動該連線上的訊息傳送之前,將無法傳送訊息。

若要確認此問題的原因:檢查用戶端程式碼是否建立連線並啟動訊息傳送。

若要解決此問題:重新寫入用戶端程式碼,以建立連線並啟動訊息傳送。