MQMD 的意見 (MQLONG)

「意見回饋」欄位與 MQMT_REPORT 類型的訊息一起使用,以指出報告的本質,且僅對該類型的訊息有意義。

欄位可以包含其中一個 MQFB_ * 值,或其中一個 MQRC_ * 值。 回饋碼分組如下:
MQFB_NONE
未提供任何意見。
MQFB_SYSTEM_FIRST
系統產生回饋的最低值。
MQFB_SYSTEM_LAST
系統產生回饋的最高值。

系統產生的回饋碼 MQFB_SYSTEM_FIRST 到 MQFB_SYSTEM_LAST 的範圍包括本主題中列出的一般回饋碼 (MQFB_ *) ,以及無法將訊息放入目的地佇列時可能發生的原因碼 (MQRC_ *)。

MQFB_APPL_FIRST
應用程式所產生意見回饋的最低值。
MQFB_APPL_LAST
應用程式所產生意見回饋的最高值。

產生報告訊息的應用程式不得使用系統範圍 (非 MQFB_QUIT) 中的回饋碼,除非它們想要模擬佇列管理程式或訊息通道代理程式所產生的報告訊息。

在 MQPUT 或 MQPUT1 呼叫上,指定的值必須是 MQFB_NONE ,或在系統範圍或應用程式範圍內。 不論 MsgType的值為何,都會勾選此選項。

一般回饋碼:
MQFB_COA
確認到達目的地佇列 (請參閱 MQRO_COA)。
MQFB_COD
確認遞送至接收端應用程式 (請參閱 MQRO_COD)。
MQFB_EXPIRATION
已捨棄訊息,因為在到期時間已過之前未從目的地佇列中移除該訊息。
MQFB_PAN
正面動作通知 (請參閱 MQRO_PAN)。
MQFB_NAN
負面動作通知 (請參閱 MQRO_NAN)。
MQFB_QUIT
結束應用程式。

工作量排程程式可以使用它來控制執行中應用程式的實例數。 將具有此回饋碼的 MQMT_REPORT 訊息傳送至應用程式實例,會向該實例指出它應該停止處理。 不過,遵循此慣例是應用程式的問題; 它不是由佇列管理程式所強制執行。

通道回饋碼:
MQFB_CHANNEL_COMPLETED
通道正常結束。
MQFB_CHANNEL_FAIL
通道異常結束並進入 STOPPED 狀態。
MQFB_CHANNEL_FAIL_RETRY
通道異常結束並進入 RETRY 狀態。

IMS-橋接器回饋碼

當收到非預期的 IMS-OTMA 感應碼時,會使用這些代碼。 感應碼或當感應碼為 0x1A 時,與該感應碼相關聯的原因碼會在 Feedback中指出。

  1. 對於 MQFB_IMS_FIRST (300) 到 MQFB_IMS_LAST (399) 範圍內的 Feedback 代碼,收到 0x1A 以外的感應碼。 感應碼 由表示式提供 (Feedback - MQFB_IMS_FIRST+1)
  2. 對於範圍 MQFB_IMS_NACK_1A_REASON_FIRST (600) 到 MQFB_IMS_NACK_1A_REASON_LAST (855) 之間的 意見 代碼,收到感應碼 0x1A 。 與感應碼相關聯的 原因碼 由表示式提供 (Feedback - MQFB_IMS_NACK_1A_REASON_FIRST)

Open Transaction Manager Access Guide and Reference中說明 IMS-OTMA 感應碼及對應原因碼的意義。

IMS 橋接器可以產生下列回饋碼:
MQFB_DATA_LENGTH_ZERO
在訊息的應用程式資料中,區段長度為零。
MQFB_DATA_LENGTH_NEGATIVE
在訊息的應用程式資料中,區段長度是負數。
MQ fb_data_length_too_big
在訊息的應用程式資料中,區段長度太大。
MQ fb_BUFFER_溢位
其中一個長度欄位的值會導致資料溢位訊息緩衝區。
MQFB_LENGTH_OFF_BY_ONE
其中一個長度欄位的值太短 1 個位元組。
MQFB_IIH_ERROR
MQMD 中的 Format 欄位指定 MQFMT_IMS ,但訊息的開頭不是有效的 MQIIH 結構。
MQFB_NOT_AUTHORIZED_FOR_IMS
訊息描述子 MQMD 所包含的使用者 ID ,或 MQIIH 結構中 Authenticator 欄位所包含的密碼,未通過 IMS 橋接器所執行的驗證。 因此,訊息未傳遞至 IMS
MQFB_IMS_ERROR
IMS傳回非預期的錯誤。 如需錯誤的相關資訊,請參閱 IMS 橋接器所在系統上的 IBM® MQ 錯誤日誌。
MQFB_IMS_FIRST
IMS-OTMA 感應碼不是 0x1A時, IMS產生的回饋碼位於 MQFB_IMS_FIRST (300) 到 MQFB_IMS_LAST (399) 範圍內。 IMS-OTMA 感應碼本身是 Feedback 減去 MQFB_IMS_ERROR。

MQFB_IMS_LAST
當感應碼不是 0x1A時, IMS所產生回饋的最高值。
MQFB_IMS_NACK_1A_REASON_FIRST
當感應碼為 0x1A時, IMS產生的回饋碼位於 MQFB_IMS_NACK_1A_REASON_FIRST (600) 到 MQFB_IMS_NACK_1A_REASON_LAST (855) 範圍內。

MQFB_IMS_NACK_1A_REASON_LAST
感應碼為 0x1A 時 IMS所產生回饋的最高值

CICS®-橋接器回饋碼: CICS bridge可以產生下列回饋碼:
MQFB_CICS_APPL_ABENDED
訊息中指定的應用程式異常結束。 此回饋碼僅出現在 MQDLH 結構的 Reason 欄位中。
MQFB_CICS_APPL_NOT_STARTED
訊息中所指定應用程式的 EXEC CICS LINK 失敗。 此回饋碼僅出現在 MQDLH 結構的 Reason 欄位中。
MQFB_CICS_BRIDGE_FAILURE
CICS bridge 異常終止,未完成正常錯誤處理。
MQFB_CICS_CCSID_ERROR
字集 ID 無效。
MQFB_CICS_CIH_ERROR
CICS 資訊標頭結構遺漏或無效。
MQFB_CICS_XX_ENCODE_CASE_ONE commarea_error
CICS COMMAREA 的長度無效。
MQFB_CICS_CORREL_ID_ERROR
相關性 ID 無效。
MQFB_CICS_DLQ_ERROR
CICS bridge 作業無法將此要求的回覆複製到無法傳送郵件的佇列。 已取消要求。
MQFB_CICS_ENCODING_ERROR
編碼無效。
MQFB_CICS_INTERNAL_ERROR
CICS bridge 發生非預期的錯誤。

此回饋碼僅出現在 MQDLH 結構的 Reason 欄位中。

MQFB_CICS_NOT_AUTHORIZED
使用者 ID 未獲授權或密碼無效。

此回饋碼僅出現在 MQDLH 結構的 Reason 欄位中。

MQFB_CICS_UOW_BACKED_OUT
由於下列其中一個原因,已取消工作單元:
  • 處理相同工作單元內的另一個要求時偵測到失敗。
  • 工作單元進行時發生 CICS 異常終止。
MQFB_CICS_UOW_ERROR
工作單元控制欄位 UOWControl 無效。
追蹤路徑訊息回饋碼:
MQFB_ACTIVITY
與 MQFMT_EMBEDDED_PCF 格式搭配使用,以容許使用者資料在活動報告之後的選項。
MQFB_MAX_ACTIVITIES
因訊息所涉及的活動數目超出活動上限而捨棄追蹤路徑訊息時傳回。
MQFB_NOT_FORWARDED
因為追蹤路徑訊息即將傳送至不支援追蹤路徑訊息的遠端佇列管理程式,所以捨棄該訊息時傳回。
MQ fb_not_delivered
因為追蹤路徑訊息即將放入本端佇列而捨棄時傳回。
MQFB_UNSUPPORTED_FORWARDING
因為 forwarding 參數中的值無法辨識,且在拒絕的位元遮罩中,而捨棄 trace-route 訊息時傳回。
MQ fb_UNSUPPORTED_Delivery
因為遞送參數中的值無法辨識,且在拒絕的位元遮罩中,而捨棄追蹤路徑訊息時傳回。
IBM MQ 原因碼: 對於異常狀況報告訊息, Feedback 包含 IBM MQ 原因碼。 可能的原因碼如下:
MQRC_PUT_INHIBITED
(2051 , X'803 ') 佇列禁止放置呼叫。
MQRC_Q_FULL
(2053 , X'805 ') 佇列已包含訊息數目上限。
MQRC_NOT_AUTHORIZED
(2035 , X'7F3') 未獲授權存取。
無法使用 MQRC_Q_SPACE_NOT_AVAILABLE
(2056 , X'808 ') 磁碟上沒有可供佇列使用的空間。
MQRC_PERSISTENT_NOT_ALLOWED
(2048 , X'800 ') 佇列不支援持續訊息。
MQRC_MSG_TOO_BIG_FOR_Q_MGR
(2031 , X'7EF') 訊息長度大於佇列管理程式的上限。
MQRC_MSG_TOO_BIG_FOR_Q
(2030 , X'7EE') 訊息長度大於佇列的上限。
如需原因碼的完整清單,請參閱:.

這是 MQGET 呼叫的輸出欄位,以及 MQPUT 和 MQPUT1 呼叫的輸入欄位。 此欄位的起始值為 MQFB_NONE。