powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как из java достучатся до WebSphereMQ
7 сообщений из 7, страница 1 из 1
Как из java достучатся до WebSphereMQ
    #35383131
Alex3000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Перечитал разные статьи и мануалы по WebSphereMQ.

Доступ к WebSphereMQ из java приложений можно получить через два интерфейса нативный MQI и сановский JMS. Как написанно в мануалах на сервере нужно сделать следующий набор действий:

1. Создать Queue Manager (делаем через графическое меню в MQ explorer), в месте с Listner Configuration for TCP/IP , например на порт 1415. Назавем например Q_M

2. Создать локальную очередь для этого менеджера (LOCAL QUEUE) например с именем Q1

3. Создать Серверный канал в менеджере (Server-connection channel), назовем например CH


Далее в дирректории установке C:\Program Files\IBM\WebSphere MQ\Tools\Java\base есть утилита проверки java - MQIVP. Запускае ее и вводим запрашиваемые данные IP сервера, порт, канал и менеджер (ранее определенные шаг 1-3).
Проверка показывает не работоспособность указанных настроек (Failure: Attempt to connect to queue manager failed. Reason: MQ Reason code 2195).
При этом если смотреть на состояние канала CH - то он находитсяв состоянии INACTIVE. Попытки стартовать канал, как через MQ explorer, так и через runmqsc , проходят удачно, но состояние канал не меняется (остается в INACTIVE) :

start CHANNEL ('CH')
2 : start CHANNEL ('CH')
AMQ8018: Start WebSphere MQ channel accepted.


В MQ explorer - Overall channel status - Inactive


Кто сталкивался с подобной проблемой, или у кого есть опыт, в корректоном конфигурировании сервера WebSphere MQ для посылки в его очереди сообщений из java, поделитесь опытом... что делаю не так???

Заранее спасибо
...
Рейтинг: 0 / 0
Как из java достучатся до WebSphereMQ
    #35384570
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вы не напишите сюда что там есть в этой утилите?
...
Рейтинг: 0 / 0
Как из java достучатся до WebSphereMQ
    #35384774
Если у канала тип SVRCONN, т.е. канал для подключения клиентов, то он и будет INACTIVE.
Это нормальное его состояние.
Проверить нужно что слушается порт 1415 (через netstat например).
Если порт слушается, значит проблема скорее всего с самим приложением.
Еще желательно почитать лог сервера MQ и Event Log в Windows.
Проверять работоспособность сервера и канала по моему лучше другими средствами, например rfhutilc из пакета IH03
...
Рейтинг: 0 / 0
Как из java достучатся до WebSphereMQ
    #35385068
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Евгений ХабаровЕсли у канала тип SVRCONN, т.е. канал для подключения клиентов, то он и будет INACTIVE.
Это нормальное его состояние.


ну это не совсем так. когда приложение запущено канал активный.
проще всего зарегистрировать локальный менеджер как удалённый в mq explorer и посмотреть на
syste.admin.svrconn.

не хочу только сейчас это делать...
...
Рейтинг: 0 / 0
Как из java достучатся до WebSphereMQ
    #35385130
Alex3000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NewYearА вы не напишите сюда что там есть в этой утилите?
Да ничего особенного - вообще это класс MQIVP.class находится в каталоге C:\Program Files\IBM\WebSphere MQ\Tools\Java\base.
Вот здесь более подробно
http://www-1.ibm.com/support/docview.wss?doc=aimwmq&rs=171&uid=swg21164356

Предлагает ввести хост, менеджер и канал, а потом пытается тестировать, но виснет.


Установил патч 6.0.2.4. Появилось эксплорере появилось меню JMS Administrated Object... Через него добавил начальный контекст (add initial context) в виде File System. а далее определил обьекты и через код :

Код: plaintext
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.
try
		{
			
			javax.naming.InitialContext ctx;
			javax.jms.QueueConnectionFactory QCF;
			javax.jms.QueueConnection conn;
			javax.jms.QueueSession session;
			javax.jms.Queue queue_out;
			javax.jms.QueueSender sender;

			
		
			
			java.util.Hashtable env = new java.util.Hashtable();

			env.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.fscontext.RefFSContextFactory");

			env.put(javax.naming.Context.PROVIDER_URL, "file:/C:/JNDI-Directory");


			ctx = new InitialContext(env);

			QCF = (QueueConnectionFactory) ctx.lookup("QCF");


			queue_out = (Queue) ctx.lookup("default");

			ctx.close();

			conn = QCF.createQueueConnection();
			conn.start();
			session = conn.createQueueSession(true, QueueSession.AUTO_ACKNOWLEDGE);
			sender = session.createSender(queue_out);

			javax.jms.TextMessage message = session.createTextMessage( "text");
			sender.send(message);
			session.commit();



			session.close();
			conn.close();

			
			
			
			
		} catch (Exception e)
		{
			e.printStackTrace();
		}

Достучался до очереди...

Но очень странно получается... Тот же код не работает в версии 6.0, где соответственно нет графического определения через эксплорер JNDI, а все делается через JMSAdmin.... Хотя после добавления initial context через эксплорер, увидл свои ранее определенные обьекты через JMSAdmin в версии 6.0 до наката патча...
...
Рейтинг: 0 / 0
Как из java достучатся до WebSphereMQ
    #35385173
Фотография NewYear
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex3000 NewYearА вы не напишите сюда что там есть в этой утилите?
Да ничего особенного - вообще это класс MQIVP.class находится в каталоге C:\Program Files\IBM\WebSphere MQ\Tools\Java\base.
Вот здесь более подробно
http://www-1.ibm.com/support/docview.wss?doc=aimwmq&rs=171&uid=swg21164356

Предлагает ввести хост, менеджер и канал, а потом пытается тестировать, но виснет.


В самом деле хрень какая-то


C:\mqm\Tools\Java\base>ls
MQIVP.class mqjcivp_es.properties mqjcivp_pt.properties
mqjcivp.properties mqjcivp_fr.properties mqjcivp_zh_CN.properties
mqjcivp_de.properties mqjcivp_it.properties mqjcivp_zh_TW.properties
mqjcivp_en.properties mqjcivp_ja.properties mqjmsapi.jar
mqjcivp_en_US.properties mqjcivp_ko.properties MQSample.java

C:\mqm\Tools\Java\base>java MQIVP.class
Exception in thread "main" java.lang.NoClassDefFoundError: MQIVP/class

C:\mqm\Tools\Java\base>java MQIVP
Websphere MQ for Java Installation Verification Program
5724-B4 (C) Copyright IBM Corp. 2002. All Rights Reserved.
===========================================================

Please enter the IP address of the MQ server :127.0.0.1
Please enter the port to connect to : (1414)
Please enter the server connection channel name :REXX.SVRCONN
Please enter the queue manager name :RAHN
MQJE001: ?«???¬?« ??¬??????? MQException: ?«? ?????????? 2, »?????? 2195
MQJE020: ???????????«? «??????® ?? »«?????????? ?????® CCSID
MQJE001: ?«???¬?« ??¬??????? MQException: ?«? ?????????? 2, »?????? 2195
MQJE020: ???????????«? «??????® ?? »«?????????? ?????® CCSID
Failure: Attempt to connect to queue manager failed.
Reason: MQ Reason code 2195
Action: Consult Websphere MQ Application Programming Reference for explanation.

C:\mqm\Tools\Java\base>runmqsc
5724-H72 (C) Copyright IBM Corp. 1994, 2004. ALL RIGHTS RESERVED.
Starting MQSC for queue manager RAHN.


ALTER QMGR CCSID(1252)
1 : ALTER QMGR CCSID(1252)
AMQ8005: WebSphere MQ queue manager changed.
END
2 : END
One MQSC command read.
No commands have a syntax error.
All valid MQSC commands were processed.

C:\mqm\Tools\Java\base>java MQIVP
Websphere MQ for Java Installation Verification Program
5724-B4 (C) Copyright IBM Corp. 2002. All Rights Reserved.
===========================================================

Please enter the IP address of the MQ server :127.0.0.1
Please enter the port to connect to : (1414)
Please enter the server connection channel name :REXX.SVRCONN
Please enter the queue manager name :RAHN
Success: Connected to queue manager.
Success: Opened SYSTEM.DEFAULT.LOCAL.QUEUE
Success: Put a message to SYSTEM.DEFAULT.LOCAL.QUEUE
Success: Got a message from SYSTEM.DEFAULT.LOCAL.QUEUE
Success: Closed SYSTEM.DEFAULT.LOCAL.QUEUE
Success: Disconnected from queue manager


Tests complete -
SUCCESS: This MQ Transport is functioning correctly.
Press Enter to continue ...


ну предлагаю на это забить. конечно это баг но догадаться было несложно....

а вот про JINDI я вам ничего не скажу к сожалению...
...
Рейтинг: 0 / 0
Как из java достучатся до WebSphereMQ
    #35385732
Вот, есть простенький примерчик, писал по случаю.
В архиве:
подкаталог context хранит .bindings, который создается командой jms_admin_add.cmd, на основе команд из файла jms_commands.txt
Сама программа запускается start_sender.cmd. Лог ведется в файл sender_log.txt, при нормальном финале он будет пустым.
Предполагается что классы MQ присутствуют в глобальном CLASSPATH, rроме того, глобальный CLASSPATH должен содержать текущий каталог "." чтобы взялся класс Sender.

Проверялось на MQ 6.0.2.3

Порядок действий:
1. Стереть .bindings из подкаталога context
2. Поправить jms_commands.txt
3. Выполнить jms_admin_add.cmd, проверить лог jms_admin_add.log
4. Выполнить start_sender.cmd
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Как из java достучатся до WebSphereMQ
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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