Package com.ibm.mq.headers.pcf
Class PCFMessageAgent
java.lang.Object
com.ibm.mq.jmqi.JmqiObject
com.ibm.mq.headers.pcf.PCFAgent
com.ibm.mq.headers.pcf.PCFMessageAgent
General-purpose agent for sending PCF queries to a queue manager. Like the PCFAgent it extends, a
PCFMessageAgent maintains a single queue manager connection and provides a simple method for
sending PCF requests and returning the set of response messages. The PCFMessageAgent uses the
PCFMessage class for requests and replies, which avoids exposure to the details of
underlying PCF header structures. The PCFMessageAgent also provides the capability to check the
header contents of a PCF response and throw a PCFException if the response indicates an error.
The following example uses a PCFMessageAgent to obtain the list of local queues on the queue
manager.
import com.ibm.mq.headers.pcf.*;
...
try
{
PCFMessageAgent agent = new PCFMessageAgent ("localhost", 1414, "CLIENT");
PCFMessage request = new PCFMessage (CMQCFC.MQCMD_INQUIRE_Q_NAMES);
request.addParameter (CMQC.MQCA_Q_NAME, "*");
request.addParameter (CMQC.MQIA_Q_TYPE, MQC.MQQT_LOCAL);
PCFMessage [] responses = agent.send (request);
String [] names = (String []) responses [0].getParameterValue (CMQCFC.MQCACF_Q_NAMES);
for (int i = 0; i < names.length; i++)
{
System.out.println ("Queue: " + names [i]);
}
}
catch (PCFException pcfe)
{
System.err.println ("PCF error: " + pcfe);
}
catch (MQDataException mqe)
{
System.err.println (mqe);
}
catch (IOException ioe)
{
System.err.println (ioe);
}
-
Field Summary
Fields inherited from class com.ibm.mq.headers.pcf.PCFAgent
MAXIMUM_ALLOWED_PREFIX_LENGTH, replyQueueNameFields inherited from class com.ibm.mq.jmqi.JmqiObject
COMP_JM, COMP_JN, COMP_JO -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor.PCFMessageAgent(MQQueueManager qmanager) Initializes a new PCFMessageAgent with an existing queue manager connection.PCFMessageAgent(String qmanager) Initializes a new PCFMessageAgent with a bindings connection to a queue manager.PCFMessageAgent(String host, int port, String channel) Initializes a new PCFMessageAgent with a client connection to a queue manager. -
Method Summary
Modifier and TypeMethodDescriptionsend(PCFMessage request) Sends a PCF request to the connected queue manager and returns the responses.send(PCFMessage request, boolean check) Deprecated.Use setCheckResponses and send(com.ibm.mq.headers.pcf.PCFMessage)send(PCFMessage request, boolean check, boolean usePlatformSettings) Deprecated.Use setCheckResponses/setUsePlatformSettings and send(com.ibm.mq.headers.pcf.PCFMessage)voidsetCheckResponses(boolean option) If this option is set, the send method throws a PCFException if the responses include a PCF message with the reason code MQRCCF_COMMAND_FAILED in the MQCFH header.voidsetUsePlatformSettings(boolean option) If this option is set, the send method alters the MQCFH contained within the PCFMessage request if necessary to match the platform of the connected queue manager.Methods inherited from class com.ibm.mq.headers.pcf.PCFAgent
connect, connect, connect, connect, connect, connect, disconnect, getCommandLevel, getExpiry, getJmqiEnv, getModelQueueName, getPlatform, getQManagerName, getReplyQueueName, getReplyQueuePrefix, getWaitInterval, send, setCharacterSet, setEncoding, setModelQueueName, setReplyQueuePrefix, setWaitInterval, setWaitIntervalMethods inherited from class com.ibm.mq.jmqi.JmqiObject
getJmqiEnvironment
-
Constructor Details
-
PCFMessageAgent
public PCFMessageAgent()Default constructor. Initializes a new PCFMessageAgent with no queue manager connection. -
PCFMessageAgent
Initializes a new PCFMessageAgent with an existing queue manager connection.- Parameters:
qmanager- an existing queue manager connection- Throws:
MQDataException- if the queue manager cannot be accessed
-
PCFMessageAgent
Initializes a new PCFMessageAgent with a client connection to a queue manager.- Parameters:
host- the hostname or IP address where the queue manager residesport- the port on which the queue manager listens for incoming channel connectionschannel- the client channel to use for the connection- Throws:
MQDataException- if the connection cannot be established
-
PCFMessageAgent
Initializes a new PCFMessageAgent with a bindings connection to a queue manager.- Parameters:
qmanager- the name of the queue manager- Throws:
MQDataException- if the connection cannot be established
-
-
Method Details
-
send
Sends a PCF request to the connected queue manager and returns the responses.- Parameters:
request- the PCF request message- Returns:
- an array of PCF response messages. A single PCF request can generate multiple replies.
- Throws:
PCFException- if the response indicates an error in PCF processingMQDataException- if there is a problem with the request or responseIOException- if there is a problem with reading or writing- See Also:
-
send
public PCFMessage[] send(PCFMessage request, boolean check) throws PCFException, MQDataException, IOException Deprecated.Use setCheckResponses and send(com.ibm.mq.headers.pcf.PCFMessage)Sends a PCF request to the connected queue manager and returns the responses.- Parameters:
request- the PCF request messagecheck- if set, the agent will check the reason code in the MQCFH of the responses and generate a PCFException if MQRCCF_COMMAND_FAILED appears- Returns:
- an array of PCF response messages. A single PCF request can generate multiple replies.
- Throws:
PCFException- if the responses include MQRCCF_COMMAND_FAILEDMQDataException- if there is a problem with the request or responseIOException- if there is a problem with reading or writing- See Also:
-
send
public PCFMessage[] send(PCFMessage request, boolean check, boolean usePlatformSettings) throws PCFException, MQDataException, IOException Deprecated.Use setCheckResponses/setUsePlatformSettings and send(com.ibm.mq.headers.pcf.PCFMessage)Sends a PCF request to the connected queue manager and returns the responses.- Parameters:
request- the PCF request messagecheck- if set, the agent will check the reason code in the MQCFH of the responses and generate a PCFException if MQRCCF_COMMAND_FAILED appearsusePlatformSettings- use the platform settings of the connected queue manager. For example, if the connected queue manager is a z/OS queue manager and the request MQCFH contains type MQCFT_COMMAND; the agent will change the type to type MQCFT_COMMAND_XR- Returns:
- an array of PCF response messages. A single PCF request can generate multiple replies.
- Throws:
PCFException- if the responses include MQRCCF_COMMAND_FAILEDMQDataException- if there is a problem with the request or responseIOException- if there is a problem with reading or writing- See Also:
-
setCheckResponses
public void setCheckResponses(boolean option) If this option is set, the send method throws a PCFException if the responses include a PCF message with the reason code MQRCCF_COMMAND_FAILED in the MQCFH header. By default, this option is set.- Parameters:
option- true - check for command failure in message response.
-
setUsePlatformSettings
public void setUsePlatformSettings(boolean option) If this option is set, the send method alters the MQCFH contained within the PCFMessage request if necessary to match the platform of the connected queue manager. This occurs, for example, if the connected queue manager is a z/OS queue manager and the request MQCFH contains type MQCFT_COMMAND; the agent will change the type to type MQCFT_COMMAND_XR. By default, this option is set.- Parameters:
option- true - match the platform of the connected queue manager.
-