IBM MQ队列列表使用用户名/密码

问题描述 投票:2回答:1

我是很新,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没有用户名/密码,授权这工作得很好,但是当这是地方,我得到的错误RC2035“MQRC_NOT_AUTHORIZED”。

是否可以通过指定的用户名/密码,不知何故,使用PCFAgent这样的认证?

(或者,有另一种方式来验证和列表队列?)

java ibm-mq pcf
1个回答
5
投票

您可以使用备用PCFAgent构造函数需要一个MQQueueManager对象。

要设置的连接参数和创建MQQueueManager对象时用户ID /口令,使用静态MQEnvironment类,或通过具有所需性能的散列表上MQQueueManager构造。

https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_8.0.0/com.ibm.mq.javadoc.doc/WMQJavaClasses/com/ibm/mq/MQQueueManager.html

https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_8.0.0/com.ibm.mq.javadoc.doc/WMQJavaClasses/com/ibm/mq/MQEnvironment.html

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);
© www.soinside.com 2019 - 2024. All rights reserved.