PutApplName (MQCHAR28)

これは、メッセージを書き込むアプリケーションの名前で、メッセージの起点コンテキスト の一部です。 内容はプラットフォーム間で異なり、リリース間で異なることもあります。

メッセージ・コンテキストについて詳しくは、 MQMD-メッセージ記述子 および メッセージ・コンテキストを参照してください。

[MQ 9.2.0 Jul 2020] IBM® MQ 9.1.2 から、追加のプログラミング言語でアプリケーション名を指定できます。 詳細については、 サポートされているプログラミング言語でのアプリケーション名の指定を参照してください。

PutApplName の形式は、PutApplType の値によって決まり、リリース間で変わることがあります。 変更はまれですが、環境が変わると発生します。

キュー・マネージャーがこのフィールドを設定する場合 (つまり MQPMO_SET_ALL_CONTEXT 以外のすべてのオプションの場合)、環境で決定されている値に設定します。
  • [z/OS] z/OS® では、キュー・マネジャーが使用する:
    • z/OS バッチの場合は、JES JOB カードからの 8 文字のジョブ名
    • TSO の場合は、7 文字の TSO ユーザー ID
    • CICS®の場合は、8 文字のアプリケーション ID の後に 4 文字のトランザクション ID が続きます。
    • IMS の場合は、8 文字の IMS システム ID とそれに続く 8 文字の PSB 名
    • XCF の場合は、8 文字の XCF グループ名とそれに続く 16 文字の XCF メンバー名
    • キュー・マネージャーが生成したメッセージの場合は、キュー・マネージャー名の最初の 28 文字
    • CICS のない分散キューイングの場合は、チャネル・イニシエーターの 8 文字のジョブ名とそれに続く送達不能キューに書き込まれた 8 文字のモジュール名、およびそれに続く 8 文字のタスク ID。
    それぞれの名前について、フィールドの残り部分にスペースがあれば右側にブランクが埋め込まれます。 複数の名前がある場合、名前と名前の間に区切り文字はありません。
  • [Windows] Windows システムでは、キュー・マネージャーは以下の名前を使用する:
    • CICS アプリケーションの場合は、CICS トランザクション名
    • CICS 以外のアプリケーションの場合は、実行可能ファイルの完全修飾名の右端の 28 文字
  • [IBM i] IBM i では、キュー・マネージャは完全修飾ジョブ名を使用する。
  • [AIX][Linux] AIX® and Linux® では、キュー・マネージャーは以下の名前を使用する:
    • CICS アプリケーションの場合は、CICS トランザクション名
    • CICS 以外のアプリケーションの場合、 MQ はプロセスの名前をオペレーティング・システムに要求します。 これはプログラム・ファイル名 (絶対パスなし) として戻されます。 その後、MQ はこのプロセス名を MQMD.PutApplName フィールドに次のように書き込みます。
      [AIX]AIX
      名前が 28 バイト以下である場合、その名前が挿入されて右側にスペースが埋め込まれます。
      名前が 28 バイトより大きい場合、名前の左端から 28 バイトが挿入されます。
      [Linux]Linux
      名前が 15 バイト以下である場合、その名前が挿入されて右側にスペースが埋め込まれます。
      名前が 15 バイトより大きい場合、名前の左端から 15 バイトが挿入され、右側にスペースが埋め込まれます。
      例えば /opt/mqm/samp/bin/amqsput QNAME QMNAME を実行すると、PutApplName は 'amqsput                     ' となります。 この MQCHAR28 フィールドには 21 個のスペース文字が埋め込まれています。 PutApplName には /opt/mqm/samp/bin を含む絶対パスが含まれていないことに注意してください。

MQPUT および MQPUT1 呼び出しでは、PutMsgOpts パラメーターに MQPMO_SET_ALL_CONTEXT が指定されていれば、これは入出力フィールドです。 フィールド内でヌル文字より後の情報はすべて破棄されます。 ヌル文字およびその後に続く文字は、キュー・マネージャーによってブランクに変換されます。 MQPMO_SET_ALL_CONTEXT が指定されていない場合、このフィールドは入力で無視され、出力専用フィールドになります。