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中指出。
- 對於 MQFB_IMS_FIRST (300) 到 MQFB_IMS_LAST (399) 範圍內的 Feedback 代碼,收到 0x1A 以外的感應碼。 感應碼 由表示式提供 (Feedback - MQFB_IMS_FIRST+1)
- 對於範圍 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') 訊息長度大於佇列的上限。
如需原因碼的完整清單,請參閱:
- 若為 IBM MQ for z/OS®,請參閱 API 完成碼和原因碼。
- 對於所有其他平台,請參閱 API 完成及原因碼。
這是 MQGET 呼叫的輸出欄位,以及 MQPUT 和 MQPUT1 呼叫的輸入欄位。 此欄位的起始值為 MQFB_NONE。