Гость
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Приложение на Java не соеденияется с WebSphere MQ / 15 сообщений из 15, страница 1 из 1
15.02.2019, 14:37
    #39774518
mad4
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Приложение на Java не соеденияется с WebSphere MQ
Добрый день! Пытаюсь написать приложение на 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
15.02.2019, 15:06
    #39774552
mad4
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Приложение на Java не соеденияется с WebSphere MQ
Коды ошибок в 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
15.02.2019, 15:14
    #39774565
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Приложение на Java не соеденияется с WebSphere MQ
Покажите скрин консоли MQ.
...
Рейтинг: 0 / 0
15.02.2019, 16:14
    #39774633
mad4
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Приложение на Java не соеденияется с WebSphere MQ
Guzya, тут есть проблема. Почему-то проблема с кодировкой в ответе от MQ. Поэтому я проверяю что сделано в ExplorerMQ.
Сейчас при выполенение команд в каналах пусто.




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

Каналы в ExplorerMQ пустые. Пробую создать через ExplorerMQ -> Каналы -> Создать Канал соединения с сервером -> Далее ничего не меняю, Готово.
Далее Запускаю(Начало) пишет, что отправлено в очередь и все так де не активен.
По кодировке, почему-то в логах так же проблема, смена не помогала, только если номера ошибок или запусков видно.
Telnet, просто черный экран в cmd и мерцающий значек _ .
...
Рейтинг: 0 / 0
15.02.2019, 21:55
    #39774780
Новый Год
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Приложение на Java не соеденияется с WebSphere MQ
в еррор лог queue manager-a нужно смотреть
может там раньше еще идут ошибки
...
Рейтинг: 0 / 0
17.02.2019, 19:31
    #39775198
Guzya
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Приложение на Java не соеденияется с WebSphere MQ
А можете подебажить и сказать на каком конкретно методе падает.
...
Рейтинг: 0 / 0
17.02.2019, 20:38
    #39775223
mad4
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Приложение на Java не соеденияется с WebSphere MQ
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
17.02.2019, 21:17
    #39775236
mad4
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Приложение на Java не соеденияется с WebSphere MQ
Падает определенно при попытке присоединиться к менеджеру:
автор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
18.02.2019, 11:50
    #39775439
Новый Год
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Приложение на Java не соеденияется с WebSphere MQ
так теперь 2035 а не 2059
это уже авторизация не проходит

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

Я правильно понял, 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
19.02.2019, 14:00
    #39776173
Новый Год
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Приложение на Java не соеденияется с WebSphere MQ
не это не в очереди
а alexx это mq админимтратор? попробуй туда вписать пользователя MUSR_MQADMIN


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

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


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