MQ のメッセージ取得オプション

MQ のメッセージ取得オプションは、MQGET のアクションを制御します。

このセクションの後半で説明するオプションを 1 つ以上指定することができます。また、何も指定しなくてもかまいません。 複数のオプションが必要な場合は、値を以下のようにすることができます。
  • 追加する (同じ定数を複数回追加しないでください)。または、
  • ビット単位 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 は、プログラムの文書化を補助するものであり、別のオプションと共に使用するためのものではありません。しかし、値がゼロであるため、そのような方法で使用されても検出されません。