PCF 命令消息

PCF 命令消息由 PCF 头,该头中标识的参数以及用户定义的消息数据组成。 使用 "消息队列" 接口调用来发出消息。

每个命令及其参数都将作为单独的命令消息发送,该命令消息包含后跟多个参数结构的 PCF 头; 有关 PCF 头的详细信息,请参阅 MQCFH-PCF 头,有关参数结构的示例,请参阅 MQCFST-PCF 字符串参数。 PCF 头标识命令以及在同一消息中跟随的参数结构数。 每个参数结构都为命令提供一个参数。

由命令服务器生成的对命令的应答具有类似的结构。 有一个 PCF 头,后跟一些参数结构。 应答可以由多条消息组成,但命令始终仅由一条消息组成。

[UNIX、Linux、Windows、IBM i]多平台上,发送 PCF 命令的队列始终称为 SYSTEM.ADMIN.COMMAND.QUEUE。

[z/OS]z/OS® 上,命令被发送到 SYSTEM.COMMAND.INPUT ,尽管 SYSTEM.ADMIN.COMMAND.QUEUE 可以是它的别名。 为该队列提供服务的命令服务器会将回复发送到命令报文的报文描述符中 ReplyToQReplyToQMgr 字段所定义的队列。

如何发出 PCF 命令消息

使用正常的消息队列接口 (MQI) 调用, MQPUT 和 MQGET 等,将 PCF 命令和响应消息放入它们的队列以及从它们的队列中检索这些消息。

注:

确保命令服务器正在目标队列管理器上运行,以便 PCF 命令在该队列管理器上进行处理。

有关提供的头文件的列表,请参阅 IBM® MQ COPY , header , include 和 module 文件

PCF 命令的消息描述符

IBM MQ 消息描述符完整记录在 MQMD-消息描述符中。

PCF 命令消息在消息描述符中包含以下字段:

报告
任何有效值 (根据需要)。
MsgType
此字段必须是 MQMT_REQUEST ,以指示需要响应的消息。
到期
任何有效值 (根据需要)。
反馈
设置为 MQFB_NONE
编码
如果要发送到以下系统之一,请将该字段设置为报文数据使用的编码;必要时将进行转换:
  • [IBM i]IBM i
  • [Linux]Linux®
  • [UNIX]UNIX
  • [Windows]Windows

CodedCharSetId
如果要发送到以下系统之一,请将该字段设置为用于报文数据的编码字符集标识符;如有必要,将进行转换:
  • [IBM i]IBM i
  • [Linux]Linux
  • [UNIX]UNIX
  • [Windows]Windows
格式
设置为 MQFMT_ADMIN。
Priority
任何有效值 (根据需要)。
持久
任何有效值 (根据需要)。
MsgId
发送应用程序可以指定任何值,或者可以指定 MQMI_NONE 以请求队列管理器生成唯一消息标识。
CorrelId
发送应用程序可以指定任何值,或者可以指定 MQCI_NONE 以指示无相关标识。
ReplyToQ
用于接收响应的队列的名称。
ReplyToQMgr
响应的队列管理器的名称 (或空白)。
消息上下文字段
可以根据需要将这些字段设置为任何有效值。 通常, Put 消息选项 MQPMO_DEFAULT_CONTEXT 用于将消息上下文字段设置为缺省值。

如果您正在使用 version-2 MQMD 结构,那么必须设置以下其他字段:

GroupId
设置为 MQGI_NONE
MsgSeqNumber
设置为 1
偏移量
设置为 0
MsgFlags
设置为 MQMF_NONE
OriginalLength
设置为 MQOL_UNDEFINED

发送用户数据

PCF 结构还可用于发送用户定义的消息数据。 在这种情况下,消息描述符 Format 字段必须设置为 MQFMT_PCF。