IBM MQ 列表队列 username/password
IBM MQ list queues with username/password
我是 IBM MQ 的新手,但我查看了 IBM 的示例并在 Java 中编写了一个可以列出队列名称的工具。我正在使用 PCFAgent:
PCFAgent agent = new PCFAgent(hostname, port, channelName);
PCFParameter[] parameters = { new MQCFST(CMQC.MQCA_Q_NAME, "*"),
new MQCFIN(CMQC.MQIA_Q_TYPE, CMQC.MQQT_LOCAL)};
MQMessage[] responses = agent.send(CMQCFC.MQCMD_INQUIRE_Q_NAMES, parameters);
MQCFH cfh = new MQCFH(responses[0]);
for (int i = 0; i < cfh.parameterCount; i++) {
System.out.println (PCFParameter.nextParameter (responses [0]));
}
当 MQ 上没有 username/password 授权时,这工作正常,但是当它到位时,我收到错误 RC2035 "MQRC_NOT_AUTHORIZED"。
是否可以通过指定 username/password 以某种方式进行身份验证,像这样使用 PCFAgent?
(或者,是否有其他方法来验证和列出队列?)
您可以使用带有 MQQueueManager 对象的备用 PCFAgent 构造函数。
要在创建 MQQueueManager 对象时设置连接参数和UserID/password,请使用静态 MQEnvironment class,或在 MQQueueManager 构造函数上传递所需属性的哈希表。
Hashtable<String, Comparable<?>> props = new Hashtable<String, Comparable<?>>();
props.put(MQConstants.TRANSPORT_PROPERTY, MQConstants.TRANSPORT_MQSERIES_CLIENT);
props.put(MQConstants.HOST_NAME_PROPERTY, hostname);
props.put(MQConstants.CHANNEL_PROPERTY, channel);
props.put(MQConstants.PORT_PROPERTY, new Integer(port));
props.put(MQConstants.USER_ID_PROPERTY, userName);
props.put(MQConstants.USE_MQCSP_AUTHENTICATION_PROPERTY, Boolean.TRUE);
props.put(MQConstants.PASSWORD_PROPERTY, password);
MQQueueManager qm = new MQQueueManager("MY.QM", props);
PCFAgent agent = new PCFAgent(qm);
我是 IBM MQ 的新手,但我查看了 IBM 的示例并在 Java 中编写了一个可以列出队列名称的工具。我正在使用 PCFAgent:
PCFAgent agent = new PCFAgent(hostname, port, channelName);
PCFParameter[] parameters = { new MQCFST(CMQC.MQCA_Q_NAME, "*"),
new MQCFIN(CMQC.MQIA_Q_TYPE, CMQC.MQQT_LOCAL)};
MQMessage[] responses = agent.send(CMQCFC.MQCMD_INQUIRE_Q_NAMES, parameters);
MQCFH cfh = new MQCFH(responses[0]);
for (int i = 0; i < cfh.parameterCount; i++) {
System.out.println (PCFParameter.nextParameter (responses [0]));
}
当 MQ 上没有 username/password 授权时,这工作正常,但是当它到位时,我收到错误 RC2035 "MQRC_NOT_AUTHORIZED"。
是否可以通过指定 username/password 以某种方式进行身份验证,像这样使用 PCFAgent?
(或者,是否有其他方法来验证和列出队列?)
您可以使用带有 MQQueueManager 对象的备用 PCFAgent 构造函数。
要在创建 MQQueueManager 对象时设置连接参数和UserID/password,请使用静态 MQEnvironment class,或在 MQQueueManager 构造函数上传递所需属性的哈希表。
Hashtable<String, Comparable<?>> props = new Hashtable<String, Comparable<?>>();
props.put(MQConstants.TRANSPORT_PROPERTY, MQConstants.TRANSPORT_MQSERIES_CLIENT);
props.put(MQConstants.HOST_NAME_PROPERTY, hostname);
props.put(MQConstants.CHANNEL_PROPERTY, channel);
props.put(MQConstants.PORT_PROPERTY, new Integer(port));
props.put(MQConstants.USER_ID_PROPERTY, userName);
props.put(MQConstants.USE_MQCSP_AUTHENTICATION_PROPERTY, Boolean.TRUE);
props.put(MQConstants.PASSWORD_PROPERTY, password);
MQQueueManager qm = new MQQueueManager("MY.QM", props);
PCFAgent agent = new PCFAgent(qm);