GroupId (MQBYTE24)
- MQMF_MSG_IN_GROUP
- MQMF_LAST_MSG_IN_GROUP
- MQMF_SEGMENT
- MQMF_LAST_SEGMENT
- MQMF_SEGMENTATION_ALLOWED
- MQPUT 呼び出しで、MQPMO_LOGICAL_ORDER が指定されている場合。
- MQGET 呼び出しで、MQMO_MATCH_GROUP_ID が指定されていない 場合。
- MQPMO_LOGICAL_ORDER が指定されている場合、キュー・マネージャーは、グループに含まれている最初のメッセージまたは論理メッセージのセグメントである最初のメッセージに対して固有のグループ ID を自動的に生成し、残りのメッセージにそのグループ ID を使用します。そのため、アプリケーションが特別なアクションを取る必要はありません。これが、推奨されている手順です。
- MQPMO_LOGICAL_ORDER が指定されていない 場合、アプリケーションは、キュー・マネージャーにグループ ID を生成するように要求する必要があります。そのためには、グループに含まれているメッセージまたは論理メッセージのセグメントに対して発行する最初の MQPUT 呼び出しまたは MQPUT1 呼び出しで、GroupId を MQGI_NONE に設定します。次に、その呼び出しの出力時にキュー・マネージャーから返されるグループ ID を、グループ内の残りのメッセージまたは論理メッセージのセグメントに使用する必要があります。メッセージ・グループの中にセグメント分割されたメッセージがある場合は、そのグループのすべてのセグメントおよびメッセージに、同じグループ ID を使用する必要があります。
MQPMO_LOGICAL_ORDER が指定されていない場合、グループに含まれているメッセージおよび論理メッセージのセグメントは任意の順序 (逆順など) で書き込むことができますが、グループ ID は、これらのメッセージのいずれかに対して発行される最初 の MQPUT または MQPUT1 呼び出しにより割り当てられる必要があります。
MQPUT および MQPUT1 呼び出しの入力時にキュー・マネージャーが使用する値については、キューでの物理順序で説明されています。 MQPUT 呼び出しおよび MQPUT1 呼び出しの出力時に、オープンされたオブジェクトが単一キューであり、配布リストではない場合、キュー・マネージャーはこのフィールドに、メッセージと共に送信された値を設定します。オープンされたオブジェクトが配布リストである場合、このフィールドの値は変わりません。後者の場合、生成されたグループ ID をアプリケーションが認識する必要がある場合、アプリケーションは、GroupId フィールドのある MQPMR レコードを提供する必要があります。
MQGET 呼び出しの入力時にキュー・マネージャーが使用する値については、表 2で説明します。MQGET 呼び出しの出力時に、キュー・マネージャーは、このフィールドに、取り出されたメッセージの値を設定します。
- MQGI_NONE
- グループ ID は指定されません。
値は、フィールドの長さについては 2 進のゼロです。この値は、グループに含まれていないメッセージ (論理メッセージのセグメントではない) で、かつセグメント化が許可されていないメッセージに使用されます。
C 言語の場合、定数 MQGI_NONE_ARRAY も定義されます。これは、MQGI_NONE と同じ値ですが、ストリングではなく文字の配列です。
このフィールドの長さは MQ_GROUP_ID_LENGTH によって指定されます。このフィールドの初期値は MQGI_NONE です。Version が MQMD_VERSION_2 より小さい場合、このフィールドは無視されます。
資料