UserIdentifier (MQCHAR12)

これは、メッセージの ID コンテキスト の一部です。 メッセージ・コンテキストの詳細については、 MQMD の概要およびメッセージのコンテキストを参照してください。

UserIdentifier には、メッセージを発信したアプリケーションのユーザー ID を指定します。キュー・マネージャーはこの情報を文字データとして扱いますが、そのフォーマットの定義はしません。

メッセージを受け取った後、後続の MQOPEN 呼び出しまたは MQPUT1 呼び出しの ObjDesc パラメーターにある AlternateUserId フィールドの UserIdentifier を使用して、アプリケーションから開く操作を実行する代わりに、UserIdentifier ユーザーに対する許可検査が実行されます。

キュー・マネージャーが MQPUT 呼び出しまたは MQPUT1 呼び出しに対してこの情報を生成するときには:
  • z/OS® では、MQOPEN 呼び出しまたは MQPUT1 呼び出しの ObjDesc パラメーターからとった AlternateUserId をキュー・マネージャーが使用します (MQOO_ALTERNATE_USER_AUTHORITY オプションまたは MQPMO_ALTERNATE_USER_AUTHORITY オプションを指定した場合)。 それらのオプションを指定しなかった場合、キュー・マネージャーは、環境から判断したユーザー ID を使用します。
  • その他の環境では、キュー・マネージャーは常に、環境から判断したユーザー ID を使用します。
ユーザー ID を環境から判断するときには:
  • z/OS では、キュー・マネージャーは次のものを使用します。
    • MVS™ (バッチ) の場合、JES JOB カードまたは開始されたタスクのユーザー ID。
    • TSO の場合、ジョブの実行依頼の際にジョブに伝搬されたユーザー ID。
    • CICS® の場合、タスクに関連付けられたユーザー ID。
    • IMS™ の場合、アプリケーションのタイプに応じた以下のユーザー ID。
      • の場合:
        • 非メッセージ BMP 領域
        • 非メッセージ IFP 領域
        • 成功した GU 呼び出しを発行しなかった メッセージ BMP 領域およびメッセージ IFP 領域
        キュー・マネージャーは、領域 JES JOB カードのユーザー ID か、TSO ユーザー ID を使用します。 それらの値がブランクまたはヌルの場合には、プログラム仕様ブロック (PSB) の名前を使用します。
      • の場合:
        • 成功した GU 呼び出しを発行した メッセージ BMP 領域およびメッセージ IFP 領域
        • MPP 領域
        キュー・マネージャーは、以下のうち 1 つを使用します。
        • メッセージに関連付けられたサインオン・ユーザー 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 個のブランク文字です。


資料 資料

フィードバック

タイム・スタンプ・アイコン 最終更新: 2018 年 10 月 2 日 (火)
http://www.ibm.com/support/knowledgecenter/SSFKSJ_7.5.0/com.ibm.mq.ref.dev.doc/com.ibm.mq.ref.dev.doc/q097700_.htm fr13340_