java - IBM MQ 列出带有用户名/密码的队列

标签 java ibm-mq pcf

我对 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 指定用户名/密码来进行身份验证?

(或者,还有其他方法来验证和列出队列吗?)

最佳答案

您可以使用采用 MQQueueManager 对象的备用 PCFAgent 构造函数。

要在创建 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);

关于java - IBM MQ 列出带有用户名/密码的队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54531082/

相关文章:

java - 无法在 Cloud Foundry 上部署 helloworld spring-boot 应用程序

java - 尝试在空对象引用上调用虚拟方法 'int java.lang.String.length()'

java - Grails oauth 插件 : unable to create a new calendar event in google

ibm-mq - WebSphere MQ 接收器 channel 已暂停

java - 从 java 程序将消息写入队列时出现 Websphere MQ 问题

ibm-mq - 远程 MQ 服务器身份验证

java - 退出线程时如何执行代码

java - 将 java.lang.Object 作为参数传递

python - xlrd.biffh.XLRDError : Excel xlsx file; not supported

java - 为什么我在规范记录查询响应中得到错误的 MQIACF_OBJECT_TYPE 值?