powered by simpleCommunicator - 2.0.18     © 2024 Programmizd 02
Map
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Приложение на Java не соеденияется с WebSphere MQ
15 сообщений из 15, страница 1 из 1
Приложение на Java не соеденияется с WebSphere MQ
    #39774518
mad4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день! Пытаюсь написать приложение на Java, которое читало бы сообщение из очереди. Но при подключение выводит ошибку. Как можно проверить подключение? И какие шаги предпринять что бы понять что происходит?
В папке error->AMQER01 ошибок не выводит. Пытаюсь сделать все на localhost. WebShpere Mq 9.1.0.0, IDE Idea+maven
Подлючение в WS MQ создаю так как из хабра :
автор1. crtmqm.exe HABR_QUEUE_MANAGER
2. DEFINE QLOCAL(HOME.TO.ES)
3. DEFINE QLOCAL(ES.TO.HOME)
5. DEFINE LISTENER(HABR_QUEUE_MANAGER.LISTENER) TRPTYPE (TCP) PORT(1414)
6. START LISTENER(HABR_QUEUE_MANAGER.LISTENER)
7. DEFINE CHANNEL(SYSTEM.ADMIN.SVRCONN) CHLTYPE(SVRCONN)

Код на Java:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
import com.ibm.mq.jms.JMSC;
import com.ibm.mq.jms.MQQueueConnectionFactory;
import com.ibm.msg.client.wmq.WMQConstants;

import javax.jms.*;

public class Main {

    public static void main(String[] args) {
        try {

            MQQueueConnectionFactory mqQueueConnectionFactory = new MQQueueConnectionFactory();
            mqQueueConnectionFactory.setHostName("localhost");
            mqQueueConnectionFactory.setChannel("SVRCONN");
            mqQueueConnectionFactory.setPort(1414);
            mqQueueConnectionFactory.setQueueManager("HABR_QUEUE_MANAGER");
            mqQueueConnectionFactory.setTransportType(JMSC.MQJMS_TP_CLIENT_MQ_TCPIP);


            QueueConnection queueConnection = mqQueueConnectionFactory.createQueueConnection("name", "pass");
            queueConnection.start();
            QueueSession queueSession = queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);

            /*Create response queue */
            Queue queue = queueSession.createQueue("QUEUE.RESPONSE");


            /*Create text message */
            TextMessage textMessage = queueSession.createTextMessage("put some message here");
            textMessage.setJMSReplyTo(queue);
            textMessage.setJMSType("mcd://xmlns");//message type
            textMessage.setJMSExpiration(2*1000);//message expiration
            textMessage.setJMSDeliveryMode(DeliveryMode.PERSISTENT); //message delivery mode either persistent or non-persistemnt

            /*Create sender queue */
            QueueSender queueSender = queueSession.createSender(queueSession.createQueue("QUEUE.REQEST"));
            queueSender.setTimeToLive(2*1000);
            queueSender.send(textMessage);

            /*After sending a message we get message id */
            System.out.println("after sending a message we get message id "+ textMessage.getJMSMessageID());
            String jmsCorrelationID = " JMSCorrelationID = '" + textMessage.getJMSMessageID() + "'";


            /*Within the session we have to create queue reciver */
            QueueReceiver queueReceiver = queueSession.createReceiver(queue,jmsCorrelationID);


            /*Receive the message from*/
            Message message = queueReceiver.receive(60*1000);
            String responseMsg = ((TextMessage) message).getText();


           queueSender.close();
           queueReceiver.close();
           queueSession.close();
            queueConnection.close();


        } catch (JMSException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
...
Рейтинг: 0 / 0
Приложение на Java не соеденияется с WebSphere MQ
    #39774552
mad4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коды ошибок в IDE:

авторcom.ibm.msg.client.jms.DetailedIllegalStateException: JMSWMQ0018: Не удалось подключиться к администратору очередей 'HABR_QUEUE_MANAGER' в режиме соединения 'Client' с помощью хоста 'localhost(1414)'.
автор.MQException: JMSCMQ0001: Не удалось выполнить вызов IBM MQ; код завершения '2' ('MQCC_FAILED'), причина '2059' ('MQRC_Q_MGR_NOT_AVAILABLE').
...
Рейтинг: 0 / 0
Приложение на Java не соеденияется с WebSphere MQ
    #39774565
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Покажите скрин консоли MQ.
...
Рейтинг: 0 / 0
Приложение на Java не соеденияется с WebSphere MQ
    #39774633
mad4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Guzya, тут есть проблема. Почему-то проблема с кодировкой в ответе от MQ. Поэтому я проверяю что сделано в ExplorerMQ.
Сейчас при выполенение команд в каналах пусто.




...
Рейтинг: 0 / 0
Приложение на Java не соеденияется с WebSphere MQ
    #39774638
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кодировку попробуйте:
chcp 65001
Ну и на всякий случай, telnet localhost 1414.
...
Рейтинг: 0 / 0
Приложение на Java не соеденияется с WebSphere MQ
    #39774640
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И в explorer-е каналы еще покажите.
...
Рейтинг: 0 / 0
Приложение на Java не соеденияется с WebSphere MQ
    #39774647
mad4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Guzya,

Каналы в ExplorerMQ пустые. Пробую создать через ExplorerMQ -> Каналы -> Создать Канал соединения с сервером -> Далее ничего не меняю, Готово.
Далее Запускаю(Начало) пишет, что отправлено в очередь и все так де не активен.
По кодировке, почему-то в логах так же проблема, смена не помогала, только если номера ошибок или запусков видно.
Telnet, просто черный экран в cmd и мерцающий значек _ .
...
Рейтинг: 0 / 0
Приложение на Java не соеденияется с WebSphere MQ
    #39774780
Фотография Новый Год
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в еррор лог queue manager-a нужно смотреть
может там раньше еще идут ошибки
...
Рейтинг: 0 / 0
Приложение на Java не соеденияется с WebSphere MQ
    #39775198
Guzya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А можете подебажить и сказать на каком конкретно методе падает.
...
Рейтинг: 0 / 0
Приложение на Java не соеденияется с WebSphere MQ
    #39775223
mad4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Guzya, проблема с кодировкой решена путем добавления в Переменные среды -> Системные переменные -> MQS_FORCE_NTLANGID(имя) значение 1033. Теперь в командной строке и в логах английский язык.
Сейчас сделано так:
runmqsc.exe MY_APPLE(поменял имя так как в справочнике) в командной строке подключаюсь к Менеджеру очередей -> ALTER QMGR CHLAUTH(DISABLED) отключил авторизацию. Так же удалил в Свойства менеджера очереди ->Extended -> Connection authentication -> SYSTEM.DEFAULT.AUTHINFO.IDPWOS . Все это не помогло.
был момент, который смущал, имя пользователя отражалось не нормально. Но авторизация же удалена?
На данный момент, время у меня 20.30 последние логи записаны в 19.47. Между эим временем несколько раз пытался подключиться с помощью IDE Idez(Java), но в логах ничего. С чего в данном случае начать дебажить?
...
Рейтинг: 0 / 0
Приложение на Java не соеденияется с WebSphere MQ
    #39775236
mad4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Падает определенно при попытке присоединиться к менеджеру:
авторcom.ibm.msg.client.jms.DetailedJMSSecurityException: JMSWMQ2013: Неверные идентификационные данные переданы администратору очередей 'MQ_APPLE' в режиме соединения 'Client' с помощью хоста 'localhost(1414)'.
Проверьте правильность предоставленных имени пользователя и пароля в администраторе очередей, с которым устанавливается соединение. За дополнительной информацией обратитесь к протоколам

авторCaused by: com.ibm.mq.MQException: JMSCMQ0001: Не удалось выполнить вызов IBM MQ; код завершения '2' ('MQCC_FAILED'), причина '2035' ('MQRC_NOT_AUTHORIZED')
...
Рейтинг: 0 / 0
Приложение на Java не соеденияется с WebSphere MQ
    #39775439
Фотография Новый Год
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так теперь 2035 а не 2059
это уже авторизация не проходит

самый простой способ избавиться от 2035 здесь -- поставить MCA user id в канале
...
Рейтинг: 0 / 0
Приложение на Java не соеденияется с WebSphere MQ
    #39775480
mad4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Новый Год,

Я правильно понял, Properties -> Mca -> Mca user id: alexx.
и меняю строку:
авторtry {
/*MQ Configuration*/
MQQueueConnectionFactory mqQueueConnectionFactory = new MQQueueConnectionFactory();
mqQueueConnectionFactory.setHostName("localhost");
mqQueueConnectionFactory.setChannel("SVRCONN");//communications link
mqQueueConnectionFactory.setPort(1414);
mqQueueConnectionFactory.setQueueManager("MQ_APPLE");//service provider
mqQueueConnectionFactory.setTransportType(JMSC.MQJMS_TP_CLIENT_MQ_TCPIP);
// 6 (JMSC.MQJMS_TP_CLIENT_MQ_TCPIP); 3("SYSTEM.ADMIN.SVRCONN")
/*Create Connection */
QueueConnection queueConnection = mqQueueConnectionFactory.createQueueConnection("alexx",null);
queueConnection.start();
QueueConnection queueConnection = mqQueueConnectionFactory.createQueueConnection ("alexx",null);

В таком варианте так же ошибка авторизации. Может возможно ошибка в создании самой очереди?
...
Рейтинг: 0 / 0
Приложение на Java не соеденияется с WebSphere MQ
    #39776173
Фотография Новый Год
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не это не в очереди
а alexx это mq админимтратор? попробуй туда вписать пользователя MUSR_MQADMIN


а в SYSTEM.DEFAULT.AUTHINFO.IDPWOS поиграйся с настройками
поставь все чекинги в none
...
Рейтинг: 0 / 0
Приложение на Java не соеденияется с WebSphere MQ
    #39778872
mad4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Новый Год,

Получилось разобраться. У меня пользователь был создан алекс@Home, который в IBM MQ воспринимался как рыхъё@Home.
Создал нового пользователя в английской раскладке( Панель управления -> учетные записи пользователей ), после чего Компьютер-> Управление -> добавить нового пользователя в административную группу mqm . Для проверки без авторизации пока использую параметры mqQueueConnectionFactory.setChannel("SYSTEM.ADMIN.SVRCONN");
Спасибо за помощь!
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Приложение на Java не соеденияется с WebSphere MQ
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (1): Анонимы (1)
Читали форум (1): Анонимы (1)
Пользователи онлайн (6): Анонимы (4), Bing Bot, Yandex Bot
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]