Опубликован: 10.06.2008 | Уровень: специалист | Доступ: платный | ВУЗ: Компания IBM
Лекция 10:

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

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

Вышеописанные действия позволят установить связь между периферийным и центральным менеджерами очередей. Созданный канал будет использоваться в дальнейшем для отправки запросов службе, функционирующей в составе менеджера очередей. Однако для маршрутизации ответов службы к запрашивающему приложению необходимо установить связь между центральным и каждым из периферийных менеджеров очередей.

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

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

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

  1. Щелкните правой кнопкой папку Channels менеджера очередей host2/spoke и выберите New\Receiver Channel.
  2. Введите to.host2/spoke в поле Name.
  3. Щелкните Finish.
Применение команд MQSC

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

DEFINE CHANNEL('to.host2/spoke') CHLTYPE(RCVR)

10.3.10. Создание транспортной очереди для центрального менеджера очередей

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

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

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

  1. Щелкните правой кнопкой папку Queues менеджера очередей host1/echo.hub и выберите New\Local Queue.
  2. Введите host2/spoke в поле Name.
  3. Щелкните Next.
  4. Выберите пункт Transmission в поле Usage.
  5. Введите в поле Description следующий текст:
    Transmission queue for messages to host2/spoke
  6. Перейдите в секцию Triggering.
  7. Установите для поля Trigger значение On.
  8. Убедитесь, что поле Trigger type содержит значение First.
  9. Введите to.host2/spoke в поле Trigger data. Этот канал будет объявлен ниже.
  10. Введите SYSTEM.CHANNEL.INITQ в поле Initiation queue.
  11. Щелкните Finish.
Применение команд MQSC

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

DEFINE QLOCAL('host2/spoke') USAGE(XMITQ) + TRIGGER TRIGTYPE(FIRST) +
TRIGDATA('to.host2/spoke') INITQ('SYSTEM.CHANNEL.INITQ') + DESCR('Transmission
queue for messages to host2/spoke')

10.3.11. Создание объекта sender-канала для центрального менеджера очередей

Ниже описано создание объекта sender-канала, применяемого для подключения к периферийному менеджеру очередей.

Это делается с использованием WebSphere MQ Explorer или команд MQSC.

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

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

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

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

DEFINE CHANNEL('to.host2/spoke') CHLTYPE(SDR) + CONNAME('host1.example.
com(9002)') XMITQ('host2/spoke')
Примечание На данном этапе рекомендуется проверить командой ping канал со стороны отправителя на менеджере host1/echo.hub, чтобы убедиться в его способности передавать сообщения. Для отправки сообщений через канал необходимо создать тестовую очередь в периферийном менеджере очередей, которому будут направляться сообщения. Соответствующие команды обсуждаются в "Построение инфраструктуры WebSphere MQ: практическое руководство" . Измените параметры команды, показанной в этом разделе, следующим образом:
amqsput queue1 host1/echo.hub 8208 0 host2/spoke

10.3.12. Локальное определение удаленной очереди

К данному моменту должна быть установлена двусторонняя связь между центральным и периферийным менеджерами очередей. Вы также освоили отправку сообщений, явно адресованных очереди-получателю.

Однако, запрашивая обслуживание, приложения не должны явно указывать имя менеджера очередей, иначе будет невозможно изменять инфраструктуру без модификации самих приложений.

Ниже рассказывается, как создать для периферийного менеджера локальное определение очереди, обслуживаемой удаленным (центральным) менеджером очередей. Это делается с использованием объекта удаленной очереди. Наличие локального определения объекта удаленной очереди позволяет приложениям указывать при отправке сообщений лишь имя очереди. Далее инфраструктура (а не приложение) самостоятельно определяет маршрут сообщения.

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

Это делается с использованием WebSphere MQ Explorer или команд MQSC.

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

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

  1. Щелкните правой кнопкой папку Queues менеджера host2/spoke и выберите New\Remote Queue Definition.
  2. Введите echo в поле Name.
  3. Щелкните Next.
  4. Введите в поле Description следующий текст:
    Local definition for routing requests for the echo service
  5. Введите echo в поле Remote queue. Это поле позволяет задать локальное имя для объекта локальной очереди, расположенной на удаленном менеджере. В этом примере используются идентичные имена.
  6. Введите host1/echo.hub в поле Remote queue manager.
  7. Оставьте поле Transmission queue пустым, поскольку имя транспортной очереди идентично имени удаленного менеджера очередей.
  8. Щелкните Finish.
Применение команд MQSC

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

DEFINE QREMOTE('echo') RNAME('echo') RQMNAME('host1/echo.hub') + DESCR('Local
definition for routing requests for the echo service')
Михаил Завалко
Михаил Завалко
Беларусь, Минск
Artem Bardakov
Artem Bardakov
Россия