如何知道MQ PCF命令中哪个参数不正确?

时间:2015-11-22 20:24:16

标签: java ibm-mq mq pcf

我在Java中使用MQ PCF命令来创建MQ队列并更新其参数。以下是我正在使用的代码。

PCFMessageAgent agent = new PCFMessageAgent(queueManager);
agent.setCheckResponses(false);
PCFMessage[] responses;
PCFMessage request = new PCFMessage(MQConstants.MQCMD_CHANGE_Q);
responses = agent.send(request);

我在请求中设置了以下属性

MQCA_Q_NAME=TestTQ1
MQIA_BACKOUT_THRESHOLD=0
MQIA_MAX_MSG_LENGTH=4194304
MQIA_MAX_Q_DEPTH=500
MQIA_Q_TYPE=1

我得到以下回复 完成代码= 2 原因代码= 3014
文档说这是由于

Parameter identifier is not valid.
The MQCFIN or MQCFIN64 Parameter field value was not valid.

问题是如何知道哪个参数不正确?

1 个答案:

答案 0 :(得分:1)

响应中的第一个PCFMessage应该有一个PCFParamter,它应该是MQCFIN,其类型是MQIACF_PARAMETER_ID,其值将包含错误所在的属性的ID。

int errParamId = responses[0].getIntParameterValue(MQC.MQIACF_PARAMETER_ID);