Очереди списка IBM MQ с именем пользователя / паролем - PullRequest
0 голосов
/ 05 февраля 2019

Я довольно новичок в 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, как это?

(Или есть другой способ аутентификации и составления списка очередей?)

1 Ответ

0 голосов
/ 05 февраля 2019

Вы можете использовать альтернативный конструктор PCFAgent, который принимает объект MQQueueManager.

Чтобы задать параметры подключения и идентификатор пользователя / пароль при создании объекта MQQueueManager, используйте статический класс 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...