Ребята, у меня есть приложение JMS, целью которого является отправка сообщений диспетчеру очередей QM1
в локальную очередь DEV.QUEUE.1
Это набор переменных, которые у меня есть.
private static final String HOST = "34.140.229.148"; // Host name or IP address
private static final int PORT = 1414; // Listener port for your queue manager
private static final String CHANNEL = "DEV.APP.SVRCONN"; // Channel name
private static final String QMGR = "QM1"; // Queue manager name
private static final String MQ_APP_USER = "admin"; // User name that application uses to connect to MQ
private static final String MQ_APP_PASSWORD = "8ATf5a3e4LP8awHpJmm85knh"; // Password that the application uses to connect to MQ
private static final String QUEUE_NAME = "DEV.QUEUE.1"; // Queue that the application uses to put and get messages to and from
Я думаю, что приведенные выше объявления хороши, потому что, когда я запускаю приложение JMS, я получаю сообщение об ошибке, в котором говорится, что соединение действительно было установлено, но оно было преждевременно разорвано из-за проблем с авторизацией. Когда я анализирую это сам, я думаю, что у меня нет разрешения на размещение каких-либо сообщений (только мой личный вывод)
Это ошибка, которую я получаю
а вот моя консоль веб-конфигуратора, по какой-то странной причине я не могу предоставить пользователю admin
права
Я попытался предоставить права пользователя, но элементы управления отключены.
Мне удалось решить эту проблему. Оказывается, вам нужно сначала предоставить разрешения в QMGR, а затем предоставить их в локальной очереди, в которую вы хотите отправлять сообщения.
Если вы работаете с IBM MQ Advanced for Developers в качестве образа контейнера или следуете серии руководств Learn-mq , то менеджер очередей будет настроен с использованием конфигурации разработчика по умолчанию. Сюда входит политика безопасности, позволяющая пользователю app
использовать канал DEV.APP.SVRCONN
для обмена сообщениями, а пользователю admin
— канал DEV.ADMIN.SVRCONN
, а также консоль IBM MQ.
В этом случае конфигурация предполагает, что пользователь admin
пытается подключиться к администратору очередей через канал DEV.APP.SVRCONN
, что приводит к ошибке 2035. Переключение на пользователя app
для работы с сообщениями должно решить проблему и избежать изменения конфигурации разработчика по умолчанию для тестирования. .
Похоже, вы используете конфигурацию разработчика по умолчанию, которая настраивает правильную политику для пользователя приложения для помещения/получения сообщений в очереди. Пользователь-администратор настраивается с помощью консоли IBM MQ. Вы не смогли начать работу с пользователем приложения?