2012-02-15 70 views
1

假設我有一個由MQ隊列提供的應用程序。當應用程序收到包含錯誤的消息時,應用程序本身會將收到的消息推送到某個無效的消息隊列中。在Websphere MQ消息中顯示拒絕原因

我的問題是:推薦的方法是讓接收應用程序在推送到無效消息隊列上的消息中追加失敗/拒絕原因?一些解決方案浮現在腦海中,但我不能確定哪一個被認爲是「最佳實踐」:

  1. 使用標準的頭字段
  2. 添加自定義標題
  3. encapsualting在另一個消息(AB)消息

回答

3

如果所有你需要的是放置一個原因代碼的消息中,使用MQMD.Feedback場與standard reason codes之一。在WMQ v7.0或更高版本中,應用程序可以設置任意數量的message properties,然後使用JMS語義和本機WMQ API調用讀取它們。由您決定命名應用程序定義的屬性的分類。

如果消息被重新發送到死信隊列而不是應用程序擁有的撤銷隊列,通常會在其前面加上Dead Letter HeaderMQDLHstructure包含描述消息被重新排列的原因碼的字段。通常,應用程序應避免使用DLQ來支持應用程序擁有的隊列。當應用程序確實使用DLQ時,他們應該有權在那裏放置消息,但不能從該隊列中檢索消息是正常的。這是因爲它是全系統資源,來自不同應用程序的消息可能會落在那裏。通常,管理應用程序或具有較高訪問權限的人員負責裁決和處理系統DLQ上的消息。