Курс предназначен для персонала IT подразделений предприятий, которые занимаются сопровождением распределенных приложений, построенных на основе очередей и сообщений.
По окончанию курса, слушатели смогут самостоятельно разворачивать на предприятии инфраструктуру IBM Websphere Message Queue. Мониторинг нагрузки, очереди отвергнутых сообщений, позволит во время принимать решения по оптимизации инфраструктуры IBM MQ.
Особое внимание в курсе уделяется взаимодействию сервера приложений JEE (WildFly, Weblogic, IBM Sphere) c сервером MQ, согласно стандартным спецификациям JMS.
На протяжении курса слушатели используют среду разработки JEE приложений Eclipse для создания тестовых и нагрузочных (стрессовых) приложений для IBM MQ.
Предварительная подготовка: работа с операционной системой Linux, основы Java и JEE.
Вся работа проходит на операционной системе Linux.
· IBM MQ - сервер среднего звена, распределенных вычислений, предназначенный для управления потоком сообщений. Краткая история IBM MQ.
· Подготовка операционной системы для развертывания сервера MQ, необходимые пакеты, установка системных семафоров. Настройка X11. Подготовка пользователей и групп операционной системы. Два этапа развертывания сервера MQ. Утилита mqconfig для проверки инсталяции OS .
· Структура каталогов, полученных в результате инсталяции сервера. Каталог сервера и его файлы. Назначение файлов mqinst.ini и mqs.ini . Создание среды окружения пользователя операционной системы. Удаление инсталяции. Закрепление навыков установки экземпляра MQ.
· Место IBM MQ в общей архитектуре инфраструктуры предприятия. Сравнение вычислений в архитектуре клиент-сервер (MQ) и трехзвенной архитектуре (стандартные сервера приложений). Промежуточное ПО. Введение в очереди, сообщения - общие понятия. Межточечный обмен сообщениями, обмен по принципу публикация-подписка. Очереди и бизнес логика. Переносимость кода. Сереализация объектов, Веб Сервисы и Микросервисы. Масштабируемость и скорость работы промежуточного ПО. Однократная доставка сообщений.
· Менеджер очередей - его назначение. Создание первого менеджера очереди - утилита - crtmqm. Размещение файлов менеджера в каталогах ОС. Правила описания имен всех объектов MQ. Утилита MQExplorer, настройка и загрузка недостающих пакетов ОС для функционирования утилиты. Запуск и останов менеджера очереди. Утилита выполнения скриптов администрирования MQ. Вспомогательная утилита rlwrap для комфортной работы администратора. Подключение к менеджеру , выполнение базовы команд управления. Автоматический запуск менеджера очередей в операционной системе Linux .
· Домашнее задание: создать скрипт sh для генерации менеджера с с очередью недоставленных сообщений и двумя локальными очередями.
· Общие правила написания скриптов SC . Практическое использование.
· Управление местом размещения данных и журнальных файлов менеджера очереди для повышения производительности работы системы. Каталог размещения лог журналов. Цикличный и линейный журнал MQ.
· Основы управления трассировками в MQ. Процессы MQ в операционной системе и создание для процессов файлов трассировок. Преобразование трассировок для чтения информации в них.
· Структура сообщения MQ , основные свойства дескриптора сообщений и их предназначение. Введение в механизмы отправки и получения сообщений. Интерфейс MQI - основа организации очередей. Функция соединения с сервером MQCONN. Обращение к конкретному объекту MQOPEN и MQCLOSE, выложить и забрать сообщение в очередь - MQPUT, MQGET. Введение в транзакции и единицы работы. Распределенные XA транзакции/
· Очереди. Типы очередей. Локальная очередь - как единственный механизм хранения данных.
· Основные задачи администратора по мониторингу очередей. Управление очередью из MQExplorer и SC. Утилиты MQ для создания тестов очередей. Основные параметры очереди локальной и управление ими через SC. Управление постоянством сообщений в очереди. Аварии и восстановление объектов MQ. Механизмы поиска «убитых» объектов - rcdmqimg и восстановления rcrmqimg. Особенности восстановления системных объектов. Восстановление конфигурации MQ - dmpmqcfg и runmqsc - практическое использование для восстановления конфигурации сервера.
· Каналы. Определение каналов. Канальные агенты. Конфигурация канала взаимодействия с сервером. Каналы отправителей и получателей, каналы инициализации. Транспортные очереди и определение удаленных очередей.. Прмер создания и передачи информации из транспортной очереди в удаленный MQ менеджер. Анализ и устранение неисправностей , связанных с нерабочим состоянием слушателей и (LISTENER) и каналов.
· Трансмиссионная очередь. Тестирование соединения с использованием трансмиссионных очередей. Описание заголовка трансмиссионной очереди.
· Очередь отвергнутых сообщений. Когда сообщение попадает в эту очередь. Задачи администратора по обслуживанию очереди отвергнутых сообщений.
· Временные очереди. Описание заголовка временной очереди, инициализация. Время жизни сообщения во временной очереди.
· Триггерное взаимодействие в MQ. Триггеры и их типы, события. и механизмы их обработки, обработчик событий в очереди недоставленных сообщений. Штатные утилиты runmqdlq и runmqtrm. Описание таблицы с алгоритмом и правилами распределения сообщений из очереди недоставленных сообщений.
· Создание сервиса в MQ системе. Запуск, останов и мониторинг сервиса MQ . Зависшие сервисы и их поиск средствами OS.
· Безопасность. Определение прав доступа к объектам MQ со стороны непривилегированных пользователей. setmqat, dspmqat - просмотр и назначение прав на отдельные объекты MQ.
· MQI и JMS интерфейсы. Определение места размещения каталога JNDI в файловой структуре MQ . Конфигурация java классов для работы с JNDI каталогом. Определение фабрики соединения c JMS сервером MQ через каталог JNDI. Целевые объекты в каталоге JNDI, связыване очередей с целевыми объектами. Тестирование JNDI.
· Нагрузочное тестирование MQ сервера через JMS службу - утилита Apache JMeter. Настройка многопоточного нагрузочного теста для MQ сервера. Особенности работы с java классами IBM
· Примеры использования JMS сервисов стандартных серверов приложений с IBM MQ на примере WildFly (JBoss) сервера. Место стандартных спецификаций JEE -JMS-EJB при взаимодействии с MQ сервером
· Примеры использования java для решения административных и нестандартных задач при работе с инфраструктурой IBM MQ
· Введение в технологию JEE - Message Driven Bean. Создание JEE приложения для взаимодействия с очередью MQ через веб интерфейс. Использование аннотаций для инжектирования ресурсов MQ в JEE приложение. Фабрика очереди и раздела (Topic). Интерфейс Connection и Session для организации транзакционного соединения. Публикаторы и подписчики. Описание ресурсов IBM MQ на сервере приложений IBM Websphere.