Priority (MQLONG)
- MQPRI_PRIORITY_AS_Q_DEF
- キューがクラスター・キューの場合、メッセージの優先順位は、メッセージが入れられるキューの特定のインスタンスを所有する 宛先 キュー・マネージャーで定義された
DefPriority属性から取られます。 通常、クラスター・キューのすべてのインスタンスのDefPriority属性の値は同じですが、これは必須ではありません。DefPriorityの値は、メッセージが宛先キューに置かれるときにPriorityフィールドにコピーされます。 その後、DefPriorityが変更されても、既にキューに置かれているメッセージは影響を受けません。 - キューがクラスター・キューでない場合、宛先キュー・マネージャーがリモートであっても、メッセージの優先順位は、 ローカル ・キュー・マネージャーで定義された
DefPriority属性から取得されます。キュー名の解決パスに複数の定義がある場合、デフォルトの優先順位は、パスの最初 の定義にあるこの属性の値から取られます。 次のタイプがあります。- 別名キュー
- ローカル・キュー
- リモート・キューのローカル定義
- キュー・マネージャー別名
- 伝送キュー (例えば、
DefXmitQNameキューなど)
DefPriorityの値は、メッセージが書き込まれるときにPriorityフィールドにコピーされます。 その後、DefPriorityが変更されても、既に書き込まれているメッセージは影響を受けません。
MQGET 呼び出しの戻り値は、常にゼロ以上です。値 MQPRI_PRIORITY_AS_Q_DEF は、返されません。
- キューがクラスター・キューの場合、メッセージの優先順位は、メッセージが入れられるキューの特定のインスタンスを所有する 宛先 キュー・マネージャーで定義された
メッセージが、ローカル・キュー・マネージャーでサポートされている最大の優先順位 (この最大値は MaxPriority キュー・マネージャー属性で指定される) より高い優先順位で書き込まれた場合、メッセージはキュー・マネージャーで受け入れられますが、キュー・マネージャーの最大優先順位でキューに入れられます。MQPUT または MQPUT1 呼び出しは、 MQCC_WARNING および理由コード MQRC_PRIORITY_EXCEEDS_MAXIMUM と共に完了します。 ただし、 Priority フィールドには、メッセージを書き込んだアプリケーションによって指定された値が保持されます。
z/OS® で、メッセージ配信順序が MQMDS_PRIORITY、インデックスタイプが MQIT_GROUP_ID のキューに MsgSeqNumber が 1 のメッセージが置かれた場合、キューはメッセージを異なる優先度で処理する可能性があります。 メッセージが優先順位 0 または 1 のキューに入れられた場合は、優先順位 2 が指定されているかのように処理されます。 これは、効率的なグループの完全性テストを可能にするために、このタイプのキューに置かれたメッセージの順序が最適化されるためです。 メッセージ配信シーケンス MQMDS_PRIORITY とインデックスタイプ MQIT_GROUP_ID に関する詳細は 、 MsgDeliverySequence 属性を参照してください。
メッセージに応答する際、アプリケーションは、応答メッセージに対して要求メッセージの優先順位を使用する必要があります。 他の状況では、MQPRI_PRIORITY_AS_Q_DEF を指定すると、アプリケーションを変更することなく優先順位の調整を行うことができます。
これは、MQGET 呼び出しでは出力フィールド、MQPUT および MQPUT1 呼び出しでは入力フィールドです。 このフィールドの初期値は MQPRI_PRIORITY_AS_Q_DEF です。