MQ のメッセージ取得オプション
MQ のメッセージ取得オプションは、MQGET のアクションを制御します。
このセクションの後半で説明するオプションを 1 つ以上指定することができます。また、何も指定しなくてもかまいません。複数のオプションが必要な場合は、値を以下のようにすることができます。
- 追加する (同じ定数を複数回追加しないでください)。または、
- ビット単位 OR 演算を使用して結合する (プログラミング言語でビット演算がサポートされている場合)。
「オプション」フィールドの初期値は、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 は、プログラムの文書化を補助するものであり、別のオプションと共に使用するためのものではありません。しかし、値がゼロであるため、そのような方法で使用されても検出されません。