如何知道MQ PCF命令中哪个参数不正确?
How to know which parameter is incorrect in MQ PCF command?
我在 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.
问题是我怎么知道哪个参数不正确?
响应中的第一个 PCFMessage 应该有一个 PCFParamter,它应该是一个 MQCFIN,其类型是 MQIACF_PARAMETER_ID,其值将包含错误所在的属性的 ID。
int errParamId = responses[0].getIntParameterValue(MQC.MQIACF_PARAMETER_ID);
我在 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.
问题是我怎么知道哪个参数不正确?
响应中的第一个 PCFMessage 应该有一个 PCFParamter,它应该是一个 MQCFIN,其类型是 MQIACF_PARAMETER_ID,其值将包含错误所在的属性的 ID。
int errParamId = responses[0].getIntParameterValue(MQC.MQIACF_PARAMETER_ID);