PCF command messages
PCF command messages consist of a PCF header, parameters identified in that header and also user-defined message data. The messages are issued using Message Queue interface calls.
Each command and its parameters are sent as a separate command message containing a PCF header followed by a number of parameter structures; for details of the PCF header, see MQCFH - PCF header, and for an example of a parameter structure, see MQCFST - PCF string parameter. The PCF header identifies the command and the number of parameter structures that follow in the same message. Each parameter structure provides a parameter to the command.
Replies to the commands, generated by the command server, have a similar structure. There is a PCF header, followed by a number of parameter structures. Replies can consist of more than one message but commands always consist of one message only.
On platforms other than z/OS®, the queue to which the PCF commands are sent is always called the SYSTEM.ADMIN.COMMAND.QUEUE. On z/OS, commands are sent to SYSTEM.COMMAND.INPUT, although SYSTEM.ADMIN.COMMAND.QUEUE can be an alias for it.
The command server servicing this queue sends the replies to the queue defined by the ReplyToQ
and ReplyToQMgr
fields in the message descriptor of the command message.
How to issue PCF command messages
Use the normal Message Queue Interface (MQI) calls, MQPUT, MQGET, and so on, to put and retrieve PCF command and response messages to and from their queues.
Ensure that the command server is running on the target queue manager for the PCF command to process on that queue manager.
For a list of supplied header files, see IBM® MQ COPY, header, include and module files.
Message descriptor for a PCF command
The IBM MQ message descriptor is fully documented in MQMD - Message descriptor.
A PCF command message contains the following fields in the message descriptor:
Report
- Any valid value, as required.
MsgType
- This field must be MQMT_REQUEST to indicate a message requiring a response.
Expiry
- Any valid value, as required.
Feedback
- Set to MQFB_NONE
Encoding
- If you are sending to IBM i, Windows, UNIX or Linux® systems, set this field to the encoding used for the message data; conversion is performed if necessary.
CodedCharSetId
- If you are sending to
IBM i,
Windows, UNIX or Linux systems, set this field to the coded character-set identifier used for the message data; conversion is performed if necessary. Format
- Set to MQFMT_ADMIN.
Priority
- Any valid value, as required.
Persistence
- Any valid value, as required.
MsgId
- The sending application can specify any value, or MQMI_NONE can be specified to request the queue manager to generate a unique message identifier.
CorrelId
- The sending application can specify any value, or MQCI_NONE can be specified to indicate no correlation identifier.
ReplyToQ
- The name of the queue to receive the response.
ReplyToQMgr
- The name of the queue manager for the response (or blank).
- Message context fields
- These fields can be set to any valid values, as required. Normally the Put message option MQPMO_DEFAULT_CONTEXT is used to set the message context fields to the default values.
If you are using a version-2 MQMD structure, you must set the following additional fields:
GroupId
- Set to MQGI_NONE
MsgSeqNumber
- Set to 1
Offset
- Set to 0
MsgFlags
- Set to MQMF_NONE
OriginalLength
- Set to MQOL_UNDEFINED
Sending user data
The PCF structures can also be used to send user-defined message data. In this case the message descriptor Format
field must be set to MQFMT_PCF.