Интеграция приложений на основе WebSphere MQ

         

Кластер WebSphere MQ


При создании систем передачи данных, нередко возникают ситуации, когда некоторые серверы недоступны в течение какого-то времени или работают посменно. Кластер WebSphere MQ это объединение менеджеров очередей, которые могут располагаться на различных платформах. При правильной настройке объектов кластера, приложения помещают сообщения в кластерные очереди, даже если один из менеджеров очередей становится недоступным, а после возобновления связи с ним приложения могут забирать сообщения из локальных кластерных очередей. Каждый менеджер может иметь очереди, доступные для других менеджеров кластера без использования удаленных (remote) и трансмиссионных (transmission) очередей и каналов. При включении менеджера в кластер автоматически создаются кластерные каналыsender и receiver на каждом таком менеджере, причем receiver - канал у каждого менеджера может быть один. В процессе передачи данных используются системные очереди SYSTEM.CLUSTER.REPOSITORY.QUEUE и SYSTEM.CLUSTER.TRANSMIT.QUEUE, которые были созданы еще в процессе установки WebSphere MQ. Менеджеры очередей в кластере могут исполнять роль, как клиентов, так и серверов. Серверы делают доступными очереди для членов кластера, а также для приложений, которые управляют процессами передачи сообщений и генерируют ответные сообщения. Клиенты могут помещать сообщения в кластерные очереди на любых менеджерах и также получать ответные сообщения, но только из кластерных очередей, находящихся на локальном менеджере. Менеджеры очередей кластера доставляют сообщения в нужную очередь и обмениваются информацией о кластерных объектах, несмотря на то, что обычно клиенты, расположенные на разных платформах не могут установить соединение друг с другом.

Объектами кластера могут быть менеджеры очередей, очереди и каналы. Информация обо всех объектах кластера называется репозиторием. Часть ее хранится в системной очереди SYSTEM.CLUSTER.REPOSITORY.QUEUE и обновляется с помощью SYSTEM.CLUSTER.COMMAND.QUEUE и встроенных в WebSphere MQ механизмов репликации. Репозиторий может быть полным (full) и частичным (partial).


Информация между репозиториями менеджеров передается с помощью кластерных каналов sender и receiver. Она включает в себя как собственно сообщения, так и любую информацию об изменении статуса менеджера или о добавлении/удалении объектов в кластер. Кластерный канал receiver принимает информацию от других менеджеров. На каждом менеджере необходимо иметь как минимум один кластерный канал receive. Все сообщения передаются через SYSTEM.CLUSTER.TRANSMIT.QUEUE. Если один из менеджеров кластера перестанет быть доступным, то сообщения, предназначенные для его очередей, останутся в этой очереди на соответствующем менеджере.

Один менеджер очередей может быть включен во множество кластеров. То же самое относится к очередям. В данном случае создается объект WebSphere MQ именуемый NAMELIST.

Рассмотрим процесс создания кластера и включения в него менеджеров на разных платформах. Создадим кластер из существующих на одном компьютере (IP адрес 198.32.100.26) менеджеров очередей QM_Win2000 (менеджер по умолчанию) и QM_Win2000_REP (порт для listener – 1415). Процесс состоит из следующих шагов [12].

  1. Вызвать контекстное меню WebSphere MQ Explorer на группе Clusters правой кнопкой мыши. Выбрать Create, далее Cluster. На экране появится информационная форма «Create Cluster Wizard» (рис. 6.1), говорящая о том, что Wizard поможет вам создать новый кластер для менеджеров очередей, которые еще не являются репозиториями для других кластеров, а также о необходимости выполнить следующие шаги:
    • ввести имя кластера;
    • ввести имя менеджера очередей, который будет выступать в роли первого репозитория;
    • ввести имя менеджера очередей, который будет выступать в роли второго репозитория;
    • ввести или оставить по умолчанию имя receiver канала для первого репозитория;
    • ввести или оставить по умолчанию имя receiver канала для второго репозитория.



    • увеличить изображение
      Рис. 6.1.  Create Cluster Wizard

    • После нажатия на кнопку «Далее» появится следующая форма (рис. 6.2), в которой надо ввести имя кластера.




      увеличить изображение
      Рис. 6.2.  Ввод имени кластера

    • В следующей форме (рис. 6.3) вводим имя менеджера очередей для первого репозитория. Поскольку оба менеджера находятся на одном компьютере, и запуск процесса создания кластера был выполнен из WebSphere MQ Explorer этого же компьютера, то устанавливаем флажок на «Local (on this computer)». Очевидно, что менеджер очередей для первого репозитория может быть расположен и на удаленном компьютере. В таком случае флажок должен быть установлен на «Remote (on another computer)», и введены имя удаленного менеджера и IP адрес с указанием номера порта для службы Listener удаленного компьютера, на котором, собственно и установлен менеджер очередей. Отметим, что нет разницы, имя какого менеджера будет введено первым. Единственное, надо иметь в виду то, что менеджер не должен являться членом и репозиторием для другого кластера.


      увеличить изображение
      Рис. 6.3.  Ввод имени менеджера для первого репозитория






    увеличить изображение
    Рис. 6.5.  Ввод имени receiver канала для второго менеджера QM_Win2000

  2. Далее выводится суммарная информация о конфигурации кластерных объектов, которую можно распечатать, а при нажатии клавиши «Готово» создается кластер и пара кластерных каналов на обоих менеджерах. Убедиться в этом можно, увидев в WebSphere MQ Explorer (рис. 6.6) в группе Clusters кластер THUNDER, в который входят менеджеры очередей QM_Win2000 и QM_Win2000_REP, а менеджер QM_Win2000_REP имеет кластерный канал sender TO_QM_Win2000 и кластерный канал receiver TO_QM_Win2000_REP.


    увеличить изображение
    Рис. 6.6.  WebSphere MQ Explorer, показывающий кластер THUNDER



  3. Следует сказать, что кластерные каналы могут использоваться как обычные для передачи сообщений между менеджерами очередей. Так, создав необходимые объекты на удаленном менеджере, не включенном в кластер можно использовать имя кластерного канала receiver для создания sender канала, и наоборот. Использовать эту возможность не рекомендуется, так как для четкости построения потоков передачи данных целесообразно использовать для каждого потока свои объекты WebSphere MQ, дифференцируя количество потоков с количеством и размером сообщений в каждом потоке. Подробнее на вопросах производительности мы остановимся в лекции 7.

    Таким образом, создав объекты WebSphere MQ (очереди и каналы) на одном менеджере можно видеть их «отображение» на другом, управление очередями становится доступным как на одном, так и на другом менеджере. При создании очередей теперь необходимо указывать, в зависимости от их назначения, доступна ли она кластеру и какому именно. При создании очередей через WebSphere MQ Explorer первый вопрос задается сразу после ввода имени очереди и нажатии на кнопку «Ok». При положительном ответе форма создания очереди переходит на закладку «Cluster» и предлагает выбрать имя доступного кластера. Отметим тот факт, что при создании кластерных очередей директории для них не создаются, как это было в отношении локальных очередей. Вся информация будет находиться в SYSTEM.CLUSTER.REPOSITORY.QUEUE и будет передаваться в такую же очередь на менеджеры, включенные в кластер.



    Рассмотрим пример передачи сообщений в кластере. Создадим локальную очередь с именем Win2000.CQ (CQ – cluster queue) на менеджере QM_Win2000:

    runmqsc QM_Win2000 define qlocal('Win2000.CQ') cluster('THUNDER') refresh cluster('THUNDER') end

    Создадим локальную очередь с именем Win2000_REP.CQ на менеджере QM_Win2000_REP:

    runmqsc QM_Win2000_REP define qlocal('Win2000_REP.CQ') cluster('THUNDER') refresh cluster('THUNDER') end

    Поместив тестовое сообщение в очередь Win2000_REP.CQ с помощью контекстного меню WebSphere MQ Explorer (рис. 6.7) на менеджере очередей QM_Win2000 можно его увидеть на менеджере QM_Win2000_REP. И наоборот, поместив тестовое сообщение в очередь Win2000.CQ на менеджере очередей QM_Win2000_REP можно его увидеть на менеджере QM_Win2000.


    увеличить изображение
    Рис. 6.7.  Помещение тестового сообщения в удаленную кластерную очередь.


    Содержание раздела







    Forekc.ru
    Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий