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

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

10.2.4. Подключение с использованием объекта канала клиентского подключения

Объекты каналов клиентского подключения в WebSphere MQ предназначены для исчерпывающей настройки атрибутов клиентских MCA.

При определении объекта канала клиентского подключения создается запись в файле, называемом "таблица определений клиентских каналов" (client channel definition table, CCDT), данного менеджера очередей. Он используется клиентами для получения сведений о доступных менеджерах очередей. Этот файл может быть создан любым менеджером очередей, а не только тем, к которому подключается приложение. Далее этот файл может быть скопирован на удаленные машины либо опубликован в сети.

Ниже рассказывается, как сконфигурировать базовые программы-примеры WebSphere MQ с использованием параметров, заданных в CCDT, при подключении к менеджерам очередей.

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

  1. Создайте для менеджера очередей host1/echo.hub два канала серверного подключения (см. "Построение инфраструктуры WebSphere MQ: практическое руководство" ) с именами client.channel1 и client.channel2. Альтернативный вариант – определение отдельных каналов у различных менеджеров очередей, слушатели которых привязаны к разным портам одного или различных компьютеров.
  2. Создайте два объекта канала клиентского подключения (оба для менеджера очередей host1/echo.hub ), их имена должны соответствовать именам ранее созданных объектов каналов серверных подключений.
    • В WebSphere MQ Explorer.
      1. Щелкните правой кнопкой папку Client Connections для менеджера host1/echo.hub и выберите New\Client-connection Channel.
      2. Введите client.channel1 в поле Name.
      3. Щелкните Next.
      4. Введите echo.hub в поле Queue manager name (здесь преднамеренно вводится имя, отличное от реального имени менеджера очередей).
      5. Введите host1.example.com(9001) в поле Connection name.
      6. Щелкните Finish.
      7. Повторите шаги 1-6, чтобы создать второй объект канала клиентского подключения с именем client.channel2. Атрибуту, задающему имя менеджера очередей, должно быть присвоено значение echo.hub. Имя подключения может быть тем же, если оба объекта канала серверного подключения связаны с одним менеджером очередей (в противном случае используйте имя, заданное для подключения ко второму менеджеру очередей).
    • С помощью команд MQSC. Исполните следующие команды MQSC в отношении менеджера очередей host1/echo.hub:
      DEFINE CHL('client.channel1') CHLTYPE(CLNTCONN) + QMNAME('echo.hub')
      CONNAME('host1.example.com(9001)')
      DEFINE CHL('client.channel2') CHLTYPE(CLNTCONN) + QMNAME('echo.hub')
      CONNAME('host1.example.com(9001)')
      Атрибут "имя подключения" ( CONNAME ) во втором определении может содержать имя подключения к другому менеджеру очередей, представленного объектом канала серверного подключения client.channel2.
  3. Ниже предполагается, что клиентское приложение работает на той же машине, что и менеджер очередей host1/echo.hub. В противном случае скопируйте CCDT на эту машину и отредактируйте переменные окружения, прописав в них локальные пути по отношению к клиентским приложениям.

    Чтобы указать клиентскому MCA, используемому программами-примерами WebSphere MQ, расположение CCDT, определите следующие переменные окружения.

    • В Windows:
      set MQSERVER=
      set "MQCHLLIB=C:\Program Files\IBM\WebSphere MQ\Qmgrs\host1&echo!hub\@ipcc"
      set MQCHLTAB=AMQCLCHL.TAB
    • В UNIX:
      unset MQSERVER
      MQCHLLIB='/var/mqm/qmgrs/host1&echo!hub/@ipcc'
      MQCHLTAB=AMQCLCHL.TAB
      export MQCHLLIB
      export MQCHLTAB
  4. Запустите программу-пример amqsputc для менеджера очередей host1/echo.hub:
    amqsputc queue1 *echo.hub
    Примечание Символ "звездочка" (*) указывает, что приложению не требуется подключение к определенному менеджеру очередей. При этом используются любые записи CCDT, у которых атрибут "имя менеджера очередей" равен " echo.hub ".
  5. Оставьте программу amqsputc подключенной к менеджеру очередей в ожидании ввода.
  6. Отобразите имя используемого канала (если используется два менеджера очередей, выполните эти действия для каждого менеджера).
    • С помощью WebSphere MQ Explorer.

      Выберите папку Channelsменеджере очередей host1/echo.hub ). Обратите внимание, что объекты каналов серверных подключений client.channel1 и client.channel2 находятся в состоянии running ("работает").

      Примечание Чтобы получить дополнительные сведения о подключении, щелкните правой кнопкой менеджер очередей host1/echo.hub в окне навигатора, выберите Application Connections, а затем щелкните нужное подключение.
    • С помощью MQSC.

      Выполните следующую команду MQSC; заметьте, что для одного из объектов канала серверного подключения поле STATUS имеет значение RUNNING:

      DIS CHSTATUS('client.*')
  7. Передайте пустую строку программе amqsputc, чтобы завершить ее.
  8. Отключите канал серверного подключения.
    • В WebSphere MQ Explorer

      Выберите папку Channels (для host1/echo.hub ). Щелкните правой кнопкой канал и выберите Stop ; убедитесь, что в поле New State указано значение Stopped.

    • С помощью команд MQSC.

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

      STOP CHANNEL('client.channel1') STATUS(STOPPED)
  9. Снова запустите программу amqsputc. Обратите внимание, что она работает, хотя ранее использованный канал теперь недоступен, поскольку используется вторая запись CCDT (которая может соответствовать другому менеджеру очередей, как сказано выше).

10.2.5. Удаленное администрирование менеджера очередей

Ниже рассказывается о применении WebSphere MQ Explorer для удаленного администрирования менеджеров очередей с использованием клиентских подключений. В этом примере предполагается, что менеджер очередей работает на одном компьютере с WebSphere MQ Explorer. Однако WebSphere MQ Explorer также поддерживает администрирование менеджеров очередей на нескольких удаленных компьютерах, в том числе на разных платформах. Кроме того, WebSphere MQ Explorer также позволяет администрировать менеджеры очередей в WebSphere MQ для z/OS V6.0.

Примечание Для удаленного администрирования менеджеров очередей с помощью WebSphere MQ Explorer требуется:
  • объект-слушатель, привязанный к известному порту;
  • объект канала серверного подключения с известным именем;
  • работающий командный сервер;
  • модельная очередь SYSTEM.MQEXPLORER.REPLY.MODEL.

В Windows и UNIX менеджеры очередей, созданные при помощи WebSphere MQ V6.0, по умолчанию имеют работающий командный сервер и нужную модельную очередь. Однако менеджеры очередей в WebSphere MQ версии 5.3 и ниже требуют ручной настройки этих компонентов; то же верно для менеджеров, созданных в WebSphere MQ V5.3 и обновленных до WebSphere MQ V6.0. Чтобы вручную подготовить нужные компоненты, выполните следующие действия.

  1. Выполните следующую команду WebSphere MQ, чтобы вручную запустить командный сервер для менеджера очередей:
    strmqcsv имя_менеджера_очередей
  2. Определите нужную модельную очередь следующей командой MQSC:
    DEFINE QMODEL('SYSTEM.MQEXPLORER.REPLY.MODEL') DEFTYPE(TEMPDYN)

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

  1. Щелкните правой кнопкой папку Queue Managers в WebSphere MQ Explorer и выберите Show/Hide Queue Managers (см. рис. 10.1).
    Окно Show/Hide Queue Managers в WebSphere MQ Explorer

    увеличить изображение
    Рис. 10.1. Окно Show/Hide Queue Managers в WebSphere MQ Explorer
  2. В окне Show/Hide Queue Managers щелкните Add – запустится мастер Add Queue Manager, позволяющий настроить способ подключения WebSphere MQ Explorer к менеджеру очередей. В этом примере подключение будет выполнено, как описано в "Построение инфраструктуры WebSphere MQ: практическое руководство" .
  3. На первой странице мастера введите имя менеджера очередей в поле Queue manager name, например host1/echo.hub.
  4. Установите параметр Connect directly.
  5. Щелкните Next.
  6. Введите хост-имя или IP-адрес компьютера, на котором работает менеджер очередей host1/echo.hub. В этом примере используется хост-имя host1.example.com, для локального компьютера можно использовать имя localhost.
  7. Укажите порт, к которому привязан слушатель заданного менеджера очередей, например 9001.
  8. Укажите имя объекта канала серверного подключения, объявленного для менеджера очередей (в этом примере – all.clients ).
  9. Щелкните Finish.

    Ниже на рис. 10.2 показан пример вводимой информации.

    Запуск мастера Add Queue Manager для прямого подключения к менеджеру очередей

    Рис. 10.2. Запуск мастера Add Queue Manager для прямого подключения к менеджеру очередей

    В результате выбранный менеджер очередей будет добавлен к таблице Shown Queue Managers в окне Show/Hide Queue Managers.

  10. Щелкните Close в окне Show/Hide Queue Managers.
  11. Заметьте, что теперь этот менеджер очередей доступен в папке Queue Managers, подобно локальным менеджерам очередей. Имя подключения, добавленное к имени этого менеджера очередей, свидетельствует о том, что он является удаленным, а его значок отличается от значков локальных менеджеров очередей (см. рис. 10.3).
    Удаленное администрирование менеджера очередей в WebSphere MQ Explorer

    Рис. 10.3. Удаленное администрирование менеджера очередей в WebSphere MQ Explorer

10.2.6. Пример публикации-подписки для JMS, использующий клиентское подключение

Чтобы настроить пример, иллюстрирующий публикацию-подписку в JMS (см. "Обмен сообщениями с использованием WebSphere MQ: практическое введение" ) для использования клиентского подключения к менеджеру очередей, достаточно изменить объекты в каталоге так, чтобы к ним можно было обращаться через JNDI. Ни исходный текст, ни способ вызова примера модификации не требует.

Ниже описано, как настроить объекты в каталоге для доступа через JNDI, чтобы программа-пример для JMS смогла подключаться к менеджеру очередей как клиент.

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

  1. Настройте текущее окно командной строки или терминальный сеанс, как описано в "Обмен сообщениями с использованием WebSphere MQ: практическое введение" .
  2. Настройте слушатель для менеджера очередей host1/jmspubsub, привязав его к порту 9010 (см. "Построение инфраструктуры WebSphere MQ: практическое руководство" ).
  3. Объявите объект канала серверного подключения с именем jms.clients для менеджера host1/jmspubsub.
  4. Запустите утилиту WebSphere MQ JMS Administration tool (см. "Обмен сообщениями с использованием WebSphere MQ: практическое введение" ).
  5. Объявите в TCF клиентское подключение для удаленного менеджера очередей (ранее TCF использовался для подключения к локальному менеджеру очередей). Для этого выполните следующую команду в WebSphere MQ JMS Administration tool (вводите команду как одну строку):
    ALTER TCF(PubSub.TCF) HOSTNAME(host1.example.com) PORT(9010)
             TRANSPORT(CLIENT) CHANNEL(jms.clients)
  6. Завершите WebSphere MQ JMS Administration tool с помощью команды END.
  7. Запустите программу-пример (не изменяя код и не компилируя ее заново) как издатель (см. "Обмен сообщениями с использованием WebSphere MQ: практическое введение" ), затем как подписчик (см. "Обмен сообщениями с использованием WebSphere MQ: практическое введение" ).
Михаил Завалко
Михаил Завалко
Беларусь, Минск
Artem Bardakov
Artem Bardakov
Россия