UserIdentifier (MQCHAR12)
これは、メッセージの ID コンテキスト の一部です。 メッセージ・コンテキストの詳細については、 MQMD の概要およびメッセージのコンテキストを参照してください。
UserIdentifier には、メッセージを発信したアプリケーションのユーザー ID を指定します。キュー・マネージャーはこの情報を文字データとして扱いますが、そのフォーマットの定義はしません。
メッセージを受け取った後、後続の MQOPEN 呼び出しまたは MQPUT1 呼び出しの ObjDesc パラメーターにある AlternateUserId フィールドの UserIdentifier を使用して、アプリケーションから開く操作を実行する代わりに、UserIdentifier ユーザーに対する許可検査が実行されます。
- z/OS® では、MQOPEN 呼び出しまたは MQPUT1 呼び出しの ObjDesc パラメーターからとった AlternateUserId をキュー・マネージャーが使用します (MQOO_ALTERNATE_USER_AUTHORITY オプションまたは MQPMO_ALTERNATE_USER_AUTHORITY オプションを指定した場合)。 それらのオプションを指定しなかった場合、キュー・マネージャーは、環境から判断したユーザー ID を使用します。
- その他の環境では、キュー・マネージャーは常に、環境から判断したユーザー ID を使用します。
- z/OS では、キュー・マネージャーは次のものを使用します。
- MVS™ (バッチ) の場合、JES JOB カードまたは開始されたタスクのユーザー ID。
- TSO の場合、ジョブの実行依頼の際にジョブに伝搬されたユーザー ID。
- CICS® の場合、タスクに関連付けられたユーザー ID。
- IMS™ の場合、アプリケーションのタイプに応じた以下のユーザー ID。
- の場合:
- 非メッセージ BMP 領域
- 非メッセージ IFP 領域
- 成功した GU 呼び出しを発行しなかった メッセージ BMP 領域およびメッセージ IFP 領域
- の場合:
- 成功した GU 呼び出しを発行した メッセージ BMP 領域およびメッセージ IFP 領域
- MPP 領域
- メッセージに関連付けられたサインオン・ユーザー ID
- 論理端末 (LTERM) 名
- 領域 JES JOB カードのユーザー ID
- TSO のユーザー ID
- PSB 名
- の場合:
- IBM® iでは、キュー・マネージャーは、アプリケーション・ジョブに関連付けられたユーザー・プロファイルの名前を使用します。
- UNIX システムでは、キュー・マネージャーは次のものを使用します。
- アプリケーションのログオン名
- ログオンを利用できない場合は、プロセスの実効ユーザー ID
- アプリケーションが CICS トランザクションである場合は、トランザクションに関連付けられたユーザー ID
- Windows システムでは、キュー・マネージャーは、ログオン・ユーザー名の先頭 12 文字を使用します。
このフィールドは、通常はキュー・マネージャーによって生成される出力フィールドです。ただし、MQPUT 呼び出しまたは MQPUT1 呼び出しでは、このフィールドを入出力フィールドにして、キュー・マネージャーにこの情報を生成させるのではなく、UserIdentification フィールドを指定することもできます。 MQPUT 呼び出しまたは MQPUT1 呼び出しの UserIdentifier フィールドをキュー・マネージャーに生成させない場合は、PutMsgOpts パラメーターに MQPMO_SET_IDENTITY_CONTEXT または MQPMO_SET_ALL_CONTEXT のいずれかを指定したうえで、UserIdentifier フィールドにユーザー ID を指定してください。
MQPUT 呼び出しおよび MQPUT1 呼び出しの場合、PutMsgOpts パラメーターに MQPMO_SET_IDENTITY_CONTEXT または MQPMO_SET_ALL_CONTEXT が指定されているときには、これは入出力フィールドです。 フィールド内でヌル文字より後の情報はすべて破棄されます。 キュー・マネージャーは、ヌル文字とそれ以降の文字をブランクに変換します。 MQPMO_SET_IDENTITY_CONTEXT または MQPMO_SET_ALL_CONTEXT のどちらも指定されていない場合、このフィールドは入力としては無視され、出力のみのフィールドとして使用されます。
MQPUT または MQPUT1 呼び出しが正常に完了すると、メッセージがキューに書き込まれた場合、このフィールドには、そのメッセージと共に送信された UserIdentifier が入ります。 メッセージが保存される場合、これはメッセージと一緒に保持される UserIdentifier の値です (保存パブリケーションの詳細については、MQPMO_RETAIN の説明を参照)。ただし、メッセージがサブスクライバーに対してパブリケーションとして送信される場合、この値は UserIdentifier として使用されません。サブスクライバーに送信されるすべてのパブリケーションで、UserIdentifier をオーバーライドする値がサブスクライバーから提供されるためです。 メッセージにコンテキストがない場合、フィールド全体がブランクになります。
これは、MQGET 呼び出しの出力フィールドです。このフィールドの長さは MQ_USER_ID_LENGTH によって指定されます。このフィールドの初期値は、C 言語ではヌル・ストリングですが、その他のプログラミング言語では 12 個のブランク文字です。
資料