MQ 取得訊息選項

「MQ 取得訊息」選項會控制 MQGET 的動作。

您可以指定本節稍後說明的一個以上選項,或是不指定任何選項。 如果您需要多個選項,其值可以是:
  • 相加(請不要將同一常數相加多次),或者
  • 利用執行位元 OR 運算來組合(如果程式設計語言支援位元運算)。

Options 欄位的起始值是 MQGMO_NO_WAIT 加 MQGMO_PROPERTIES_AS_Q_DEF。

內容選項

下列選項與訊息的內容相關:
MQGMO_PROPERTIES_AS_Q_DEF

訊息的內容(訊息描述子或延伸中包含的內容除外)必須如 PropertyControl 佇列內容所定義的那樣來表示。 如果已提供 MsgHandle,則這個選項會被忽略,且您可以使用 MsgHandle 來取得訊息的內容,除非 PropertyControl 佇列內容的值是 MQPROP_FORCE_MQRFH2

如果未指定內容選項,這是預設動作。

MQGMO_PROPERTIES_IN_HANDLE

必須可以使用 MsgHandle 來取得訊息的內容。 如果未提供訊息控點,則呼叫會失敗,原因為 MQRC_HMSG_ERROR

MQGMO_NO_PROPERTIES

不擷取訊息的內容(訊息描述子或延伸中包含的內容除外)。 如果已提供 MsgHandle,這個選項會被忽略。

MQGMO_PROPERTIES_FORCE_MQRFH2

訊息的內容(訊息描述子或延伸中包含的內容除外)必須使用 MQRFH2 標頭來表示。 如此可以對預期要擷取內容,但無法變更為使用訊息控點的舊版應用程式,提供相容性。 如果已提供 MsgHandle,這個選項會被忽略。

MQGMO_PROPERTIES_COMPATIBILITY
如果訊息含有字首為 "mcd.""jms.""usr.""mqext." 的內容,則所有訊息內容都會放在 MQRFH2 標頭中遞送給應用程式。 否則,訊息的所有內容(訊息描述子或延伸中包含的內容除外)都會被捨棄,而無法再供應用程式存取。

預設選項

如果不需要上述任何選項,則可以使用下列選項:
MQGMO_NONE
使用這個值來指出未指定其他選項;所有選項都採用其預設值。 MQGMO_NONE 有助於提供程式的使用說明;這個選項並不是要用來與任何其他選項搭配使用,但由於其值為零,因此,即使這樣使用,系統也偵測不到。