PutApplNameMQCHAR28 )

这是放置消息的应用程序的名称,并且是消息的 源上下文 的一部分。 平台之间的内容不同,发行版之间的内容也可能不同。

有关消息上下文的更多信息,请参阅 MQMD-消息描述符消息上下文

IBM® MQ 9.1.2 开始,可以使用其他编程语言指定应用程序名称。 请参阅 以受支持的编程语言指定应用程序名称 以获取更多信息。

PutApplName 的格式取决于 PutApplType 的值,并且可以从一个发行版更改为另一个发行版。 更改很少,但如果环境发生更改,那么会发生更改。

当队列管理器设置此字段 (即,对于除 MQPMO_SET_ALL_CONTEXT 以外的所有选项) 时,它会将此字段设置为由环境确定的值:
  • [z/OS]z/OS®上,队列管理器使用:
    • 对于 z/OS 批处理,来自 JES JOB 卡的 8 字符作业名
    • 对于 TSO ,这是 7 字符的 TSO 用户标识
    • 对于 CICS®, 8 字符 applid ,后跟 4 字符 tranid
    • 对于 IMS,这是 8-character IMS 系统标识,后跟 8-character PSB 名称
    • 对于 XCF ,这是 8 字符的 XCF 组名,后跟 16 字符的 XCF 成员名
    • 对于队列管理器生成的消息,队列管理器名称的前 28 个字符
    • 对于没有 CICS的分布式排队,通道启动程序的 8 字符作业名后跟放入死信队列的模块的 8 字符名称,后跟 8 字符任务标识。
    名称和字段的其余部分中的任何空格一样,每个名称都用空格填充在右边。 如果有多个名称,那么它们之间没有分隔符。
  • [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 ,那么此字段将在输入时被忽略,并且是仅输出字段。