powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / менеджеры очередей в WebSphere MQ
4 сообщений из 4, страница 1 из 1
менеджеры очередей в WebSphere MQ
    #38034721
shax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В WebSphere MQ v7 нужно создать два менеджера очередей. В менеджерах созданы локальные и удалённые очереди, направленные друг на друга. При размещении тестового сообщения в одну из очередей одного менеджера, сообщение должно передаваться в очередь другого менеджера. Аналогично в другом направлении.
WebSphere MQ установлена на виртуальной Centos6 в Oracle VirtualBox 4.2.4.
Как это сделать, только подробнее пожалуйста. С WebSphere MQ до этого не работал.
...
Рейтинг: 0 / 0
менеджеры очередей в WebSphere MQ
    #38034731
alienrom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
менеджеры очередей в WebSphere MQ
    #38045864
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shax,
Это сценарий гарантированной доставки сообщений.
На приложенной картинке дополнительно показан еще и message broker, но это не важно для ниже следующего сценария и он там не учавствует в описании:

создаем первый менеджер без ключа (-q) кот означает что он не является менеджером по-умолчанию
crtmqm qm.apple

Создаем второй менеджер очередей(отправитель) с ключем (-q), созданный менеджер будет менеджером по-умолчанию
crtmqm -q qm.orange

Выполним strmqm, при этом запустится созданный менеджер по-умолчанию qm.orange
strmqm

Запустим также второй менеджер (получатель)
strmqm qm.apple

Сейчас мы имеем два запущенных менеджера.
Теперь нам нужно создать очередь на qm.apple чтобы получать сообщения
Запустим интерпретатор команд MQ runmqsc.
Если запустить runmqsc, это автоматически запустит утилиту MQSC для менеджера по-умолчанию

runmqsc qm.apple
Создадим локальную очередь
define qlocal(q1)
end


Теперь нам нужно создать слушатель для qm.apple,
который позволит нам отправлять сообщения менеджеру очередей qm.orange по соединению через канал
Мы собираемся заставить слушатель использовать порт 30000

runmqsc qm.apple
define listener(qm.apple.listener) trptype(TCP) port(30000)
start listener(qm.apple.listener)
end


Теперь мы собираемся создать слушатель для qm.orange
Вы можете подумать для чего нам нужен слушатель qm.orange когда это менеджер-отправитель
Это просто для того чтобы можно было использовтаь MQ Explorer с удаленной машины (напримаер с win)
для администрирования MA на Linux. Для этого нам нужно соединяться как клиент к менеджерам очередей через их слушатели.

runmqsc qm.orange
define listener(qm.orange.listener) trptype(TCP) port(30001) ipaddr(127.0.0.1)
start listener(qm.orange.listener)
end


Посмотрим на запущенные процессы слушателей
...
пока слушатель qm.apple не связан с нужным ip-адресом

runmqsc qm.apple
alter listener(qm.apple.listener) ipaddr(127.0.0.1)
1 : alter listener(qm.apple.listener) ipaddr(127.0.0.1)

Получим ошибку
AMQ8405: Syntax error detected at or near end of command segment below:-
alter listener(qm.apple.listener) ipaddr

AMQ8427: Valid syntax for the MQSC command:

ALTER LISTENER(listener_name)
TRPTYPE( TCP | SPX | NETBIOS | LU62 )
Правильный формат
alter listener(qm.apple.listener) trptype(tcp) ipaddr(127.0.0.1)
end


Перезапустим слушатель чтобы изменения вступили в силу
runmqsc qm.apple
stop listener(qm.apple.listener)
start listener(qm.apple.listener)
end


Теперь у нас есть запущенные менеджеры очередей со слушателями.
Теперь нам нужно создать транспортную очередь на qm.orange
Транспортная очередь нам необходима чтобы общаться по каналу.
Мы используем канал чтобы позволить qm.orange послать сообщения qm.apple
Нам также нужно создать определение удаленной очереди которая будет представлять нашу удаленную очередь q1 на qm.apple в которую мы хотим отправлять сообщения

runmqsc qm.orange
define qlocal (qm.orange.tq) usage(xmitq)
end


runmqsc
define qremote(q1) rname(q1) rqmname(qm.apple) xmitq(qm.orange.tq)
end


Мы создали транспортную очередь и определение удаленной очереди, но до сих пор не создали канал. Но перед этим мы используем MQ Explorer чтобы посмотреть что мы создали.
Перед тем как мы действительно можем посмотрим на менеджеры очередей, нам нужно убедиться что MQ explorer может соединяться с менеджерами очередей, чтобы сделать это нам нужно убедиться что оба менеджера очередей имею специально созданный канал с именем SYSTEM.ADMIN.SVRCONN

Канал SYSTEM.ADMIN.SVRCONN должен в обязательном порядке присутствовать на каждом удаленном менеджере очередей которым вам нужно управлять с помощью MQ Explorer. Без этого канала удаленное администрирование не возможно.

runmqsc qm.apple
DEFINE CHANNEL(SYSTEM.ADMIN.SVRCONN) CHLTYPE(SVRCONN)
start channel(SYSTEM.ADMIN.SVRCONN)
end


Тоже самое для qm.orange
runmqsc qm.orange
DEFINE CHANNEL(SYSTEM.ADMIN.SVRCONN) CHLTYPE(SVRCONN)
start channel(SYSTEM.ADMIN.SVRCONN)
end


Подключим в MQ Explorer удаленные менеджеры очередей и посмотрим на их объекты
Теперь мы собираемся создать канал чтобы позволить менеджерам общаться друг с другом.
Нам нужно по одному объекту канала на стороне отправителя и получателя

runmqsc qm.orange
define channel (qm.orange.qm.apple) chltype (sdr) conname ('127.0.0.1(30000)') xmitq (qm.orange.tq) trptype (tcp)
end

Теперь нам нужно создать объект канала на стороне получателя на qm.apple

runmqsc qm.apple
define channel (qm.orange.qm.apple) chltype (RCVR) trptype (TCP)
end


Идея проста - MQ всегда должна использовать локальную очередь для размещения сообщений.
Тогда мы помещаем сообщение в определение удаленной очереди и они доставляются в канал через локальную транспортную очередь

Теперь нам нужно стартовать канал. Можно использовать MQ Explorer или MQSC

runmqsc qm.orange
start channel(qm.orange.qm.apple)
end


мы можем посмотреть статус канала:
runmqsc qm.orange
display
display chstatus(qm.orange.qm.apple)
end


То что мы хотим сделать сейчас - это разместить тестовое сообщение в определении удаленной очереди
и посмотреть пришло ли оно в удаленные менеджер очередей

В MQ Explorer на qm.orange: Put Test Message
После помещения в счетчиках транспортной очереди видно 1-открыт, 1-закрыт

Посмотрим на очередь получателя в qm.apple и пришло ли сообщение
...
Рейтинг: 0 / 0
менеджеры очередей в WebSphere MQ
    #38046002
shax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Роман Дынник, большое спасибо, очень выручили.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / менеджеры очередей в WebSphere MQ
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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