Компания IBM
Опубликован: 10.06.2008 | Доступ: свободный | Студентов: 653 / 41 | Оценка: 4.18 / 4.00 | Длительность: 26:27:00
Специальности: Системный архитектор
Лекция 10:

Построение инфраструктуры WebSphere MQ: практическое руководство

10.3.5. Создание объекта sender-канала для периферийного менеджера очередей

Объект sender-канала позволяет установить связь между двумя менеджерами очередей в инфраструктуре. Имя объекта sender-канала должно соответствовать имени объекта удаленного канала совместимого типа, объявленного в менеджере очередей, являющемся получателем сообщений. Объект канала получателя уже объявлен в центральном менеджере очередей; все периферийные менеджеры очередей используют этот объект для подключения к центральному менеджеру очередей.

Канал принимает сообщения от транспортной очереди менеджера и передает их удаленному менеджеру очередей. Создать канал можно с использованием WebSphere MQ Explorer или команд MQSC.

Применение WebSphere MQ Explorer

Выполните следующие действия.

  1. Щелкните правой кнопкой папку Channels в менеджере очередей host2/spoke и выберите New\Sender Channel.
  2. Введите to.host1/echo.hub в поле Name.
  3. Щелкните Next.
  4. Объект sender-канала используется для создания каналов связи с центральным менеджером, поэтому полю Connection name присваивают следующее значение:
    host1.example.com(9001)
  5. Введите host1/echo.hub в поле Transmission queue.
  6. Щелкните Finish.
Применение команд MQSC

Выполните следующие действия.

  1. Выполните следующую команду MQSC в отношении менеджера очередей host2/spoke:
    DEFINE CHANNEL('to.host1/echo.hub') CHLTYPE(SDR) +
    CONNAME('host1.example.com(9001)') XMITQ('host1/echo.hub')
  2. Проверьте атрибуты канала при помощи следующей команды MQSC:
    DISPLAY CHANNEL('to.host1/echo.hub')

10.3.6. Проверка канала с помощью команды ping WebSphere MQ

Ниже рассказывается, как с помощью команды WebSphere MQ ping проверить связь через канал. Однако, при этой проверке сообщения через канал не передаются. Для этой цели используются WebSphere MQ Explorer или команды MQSC.

Применение WebSphere MQ Explorer

Выполните следующие действия.

  1. Выберите папку Channels менеджера очередей host2/spoke.
  2. Щелкните правой кнопкой элемент to.host1/echo.hub и выберите команду Ping.
  3. Откроется окно с результатами.
Применение команд MQSC

Выполните следующую команду MQSC в отношении менеджера очередей host2/spoke:

PING CHANNEL('to.host1/echo.hub')
Примечание Если команда ping вернет ошибку, проверьте следующее:
  • в объекте sender-канала указано верное хост-имя или IP-адрес, а также номер порта для менеджера очередей host1/echo.hub ;
  • имя объекта sender-канала соответствует имени объекта receiver-канала, объявленного в host1/echo.hub, вплоть до регистра символов;
  • у менеджера очередей host1/echo.hub имеется активный слушатель.

10.3.7. Настройка и активация канала связи с центральным менеджером очередей

Ниже рассказывается, как автоматически стартовать канал связи между периферийным и центральным менеджерами очередей с помощью инициатора каналов WebSphere MQ при поступлении сообщения в транспортную очередь. Это делается с использованием WebSphere MQ Explorer и команд MQSC.

Применение WebSphere MQ Explorer

Выполните следующие действия.

  1. Выберите папку Queues в менеджере очередей host2/spoke.
  2. Щелкните правой кнопкой очередь host1/echo.hub и выберите Properties.
  3. Перейдите в секцию Triggering окна свойств очереди.
  4. В поле Trigger control установите значение On.
  5. В поле Trigger type введите First.
  6. Введите to.host1/echo.hub в поле Trigger data.
  7. Введите SYSTEM.CHANNEL.INITQ в поле, которое содержит имя очереди инициации.
  8. Щелкните OK.
Применение команд MQSC

Выполните следующую команду MQSC в отношении менеджера очередей host2/spoke:

ALTER QLOCAL('host1/echo.hub') TRIGGER TRIGTYPE(FIRST) + TRIGDATA('to.host1/
echo.hub') INITQ('SYSTEM.CHANNEL.INITQ')
Примечание Для успешной активации канала важен правильный синтаксис атрибутов.

10.3.8. Отправка тестового сообщения по каналу центральному менеджеру очередей

Ниже рассказывается, как отправить по каналу тестовое сообщение центральному менеджеру очередей. В этом примере очередь-получатель сообщения будет задана вручную в менеджере host1/echo.hub, и локально задавать дополнительные сведения о получателе не потребуется. Локальный менеджер очередей может связаться с менеджером host1/echo.hub благодаря наличию транспортной очереди с соответствующим именем. Этот механизм позволяет отправлять ответы через инфраструктуру WebSphere MQ заданным очередям, обслуживаемым заданным менеджером очередей.

  1. Выполните следующую команду WebSphere MQ и введите текст сообщений, предназначенных для отправки очереди, обслуживаемой центральным менеджером:
    amqsput queue1 host2/spoke 8208 0 host1/echo.hub
    Эту команду вызывают со следующими параметрами:
    • queue1 – имя очереди в host1/echo.hub ;
    • host2/spoke – имя менеджера очередей, к которому требуется подключиться;
    • 8208 – десятичный код параметров запроса, передаваемый при вызове MQOPEN (для данного примера этот параметр не важен, он требует открыть очередь для добавления сообщений и приводит к неудаче последующие попытки добавления сообщений если менеджер очередей находится в процессе остановки);
    • 0 – отсутствие параметров при вызове MQCLOSE (для данного примера этот параметр не важен);
    • host1/echo.hub – имя менеджера очередей, заданного при вызове MQOPEN. Представляет менеджер очередей, который используется в этом примере. Видно, что его значение соответствует именам удаленного менеджера очередей и транспортной очереди, применяемой менеджером host2/spoke для отправки сообщений.
  2. Периферийный менеджер очередей помещает сообщение в транспортную очередь. В результате инициатору канала менеджера очередей передается триггерное сообщение через SYSTEM.CHANNEL.INITQ. Канал стартует и начинает передачу сообщений удаленному менеджеру очередей. Удаленный MCA, созданный на основе объекта receiver-канала в host1/echo.hub, передает сообщения заданной очереди менеджера-получателя сообщений.
Примечание Для заданной очереди-получателя в центральном менеджере очередей должен быть объявлен объект локальной очереди. Если не удается найти сообщения в транспортной очереди периферийного менеджера либо в удаленной очереди назначения, проверьте очередь недоставленных сообщений dead.letters центрального менеджера. WebSphere MQ Explorer отображает заголовки любых сообщений, попавших в эту очередь.

На стороне отправителя для просмотра состояния канала в WebSphere MQ Explorer используется столбец Status таблицы Channels либо следующая команда MQSC:

DISPLAY CHSTATUS('to.host1/echo.hub')
Чтобы вручную запустить канал на стороне отправителя, щелкните канал правой кнопкой и выберите Start. Это также можно сделать, исполнив следующую команду MQSC:
START CHANNEL('to.host1/echo.hub')
Чтобы остановить канал, не блокируя его (то есть не препятствуя дальнейшему запуску инициатором канала), выберите пункт Inactive в раскрывающемся списке New State (так можно остановить канал в WebSphere MQ Explorer). Эту операцию также можно выполнить при помощи следующей команды MQSC:
STOP CHANNEL('to.host1/echo.hub') MODE(INACTIVE)
Александр Силивин
Александр Силивин
Украина, Кривой Рог
Олег Корсак
Олег Корсак
Латвия, Рига