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

Менеджер очередей


Менеджер очередей – совокупность объектов WebSphere MQ (различных видов очередей, каналов, процессов, сервисов или служб). Он осуществляет контроль и управление всеми его объектами и обрабатывает поступающие запросы от прикладных программ.

Для создания любого объекта WebSphere MQ, и менеджера очередей в частности, существует два основных способа: на основе команд и графический, работающий в среде Windows. Создание объектов и работа с ними на основе команд является универсальным способом, работающим на различных платформах с одним и тем же синтаксисом этих команд. Поэтому создание менеджера очередей рассмотрим прежде всего с помощью команды crtmqm.

Итак, для платформы NT необходимо ввести в командной строке:

crtmqm /u DEAD_LETTER QM_Win2000

где:

/u или -u – опция, говорящая о том, что далее будет создана очередь недоставленных сообщений (подробнее см. лекцию 7);

DEAD_LETTER – имя очереди недоставленных сообщений;

QM_Win2000 – имя менеджера очередей.

Подробное описание утилиты runmqsc и работы с основными командами MQSC будет рассмотрено ниже. Имя менеджера очередей не является уникальным в пределах сети, но на одном компьютере не может быть двух менеджеров с одинаковым именем.

Для платформы UNIX синтаксис команды выглядит следующим образом:

crtmqm -u DEAD_LETTER QM_HP_UNIX

Данная команда, как и опция –u должна быть введена в нижнем регистре и именно со знаком "-" (-U работать не будет).

Также для успешного создания/изменения любого объекта необходимо обладать соответствующими правами. Так, например, WindowsNT пользователь, от имени которого вводится команда, должен быть членом группы mqm. Подробнее о вопросах авторизации см. в лекции 5.

Полный синтаксис команды crtmqm имеет вид:

crtmqm –c Text –d DefaultTransmissionQueue –h MaximumHandleLimit –lc(или -ll) –ld LogPath –lf LogFileSize –lp LogPrimaryFiles –ls LogSecondaryFiles –q –g ApplicationGroup –t IntervalValue –u DeadLetterQueue –x MaximumUncommittedMessages –z MQMName

Опции команды crtmqm означают следующее.


–c Text - Описание (description) или комментарий, можно ввести до 64 символов.

–d DefaultTransmissionQueue - Транспортная (transmission) очередь по умолчанию. В эту очередь будут попадать сообщения, для которых значение Transmission Queue явно не определено и это имеет свой смысл. При возникновении данной ситуации выгоднее получить сформировавшееся сообщение в DEAD_LETTER, так как имеется ряд способов извлечения или повторной отправки сообщений из DEAD_LETTER по назначению.

–h MaximumHandleLimit - Максимальное количество открытых объектов (командой MQOPEN). Значение может быть в пределах от 1 до 999 999 999, по умолчанию 256 (если не планируется работа одного приложения с более чем 256 объектами на одном менеджере, а авторы настоятельно не рекомендуют этого делать за исключением работы с distribution list, то следует оставить значение по умолчанию, т.е. 256);

–lc - Используется "круговое" логирование. При этом восстановление состояния менеджера очередей в определенный период невозможно, то есть если "упал" сервер, то сохраняются только те объекты и сообщения, которые существовали в момент "падения".

Данное значение (lc) используется по умолчанию.

–ll - Используется "линейное" логирование. При данном типе логирования возможно восстановление данных. Указав тип логирования при создании менеджера в дальнейшем нельзя его изменить.

–ld LogPath - Указывается путь, где будут создаваться файлы логирования. Для UNIX по умолчанию это var/mqm/log. Пользователь и группа mqm должны иметь соответствующие права в этом каталоге. Соответственно, при изменении пути необходимо также предоставить соответствующие права для вышеуказанных пользователей.

Для NT по умолчанию – C:\Program Files\IBM\WebSphere MQ\log

–lf LogFileSize - Размер файла логирования. Файл будет создан с размером в 4 раза большим указанного числа. Значение может быть в диапазоне между 32 и 4095 для NT, OS/2 Warp и между 64 и 16384 для UNIX. Значение по умолчанию для NT и OS/2 Warp равно 256 для UNIX – 1024.



–lp LogPrimaryFiles - Количество первичных файлов логирования. Может быть в пределах от 2 до 62. Значение по умолчанию – 3.

–ls LogSecondaryFiles - Количество вторичных файлов логирования. Может быть в пределах от 1 до 61. Значение по умолчанию – 2.

Следует соизмерять размеры файлов с возможностями операционных систем.

–q - Если указана опция –q, то созданный менеджер очередей будет создан как менеджер по умолчанию.

–g ApplicationGroup - Опция применима только для AIX, Sun-Solaris и HP-UX. Указывается имя группы, которой разрешается запускать MQI приложения, работать с файловой системой менеджера очередей.

–t IntervalValue - Определяет время интервала триггеринга очередей в миллисекундах. Значение может быть в пределах от 0 до 999 999 999 (более 11 дней). Подробнее о триггеринге см. в лекции 4.

–u DeadLetterQueue - Имя очереди недоставленных сообщений.

–x MaximumUncommittedMessages - Максимальное количество сообщений, которые могут находиться в очередях и транзакции по их отправке еще не завершились. Значение может быть в пределах от 0 до 999 999 999. По умолчанию – 10000.

–z - Запрещает появление сообщений об ошибках. Настоятельно не рекомендуется использовать данную опцию, т.к. при возникновении проблем не будет достаточной информации об ошибках

MQMName - Имя менеджера.

Коды возврата при создании менеджера очередей:084969707172100111115
Queue manager createdМенеджер очередей создан
Queue manager already existsМенеджер очередей уже существует
Queue manager stoppingМенеджер очередей останавливается
Storage not availableУстройство записи недоступно
Queue space not availableНедоступно пространство для создания очереди
Unexpected errorНепредвиденная ошибка
Queue manager name errorОшибочное имя менеджера очередей
Log location invalidНеверное расположение лог-файла
Queue manager created. However, there was a problem processing the default queue manager definition in the product configuration file. The default queue manager specification may be incorrectМенеджер очередей создан, однако имеется проблема с обработкой менеджера по умолчанию в конфигурационном файле. Описание менеджера по умолчанию может быть неверным.
Invalid log sizeНеверный размер лог-файла.
Возможные ошибки при создании менеджера очередей отражены в документации [7]. Этой книгой " WebSphere MQ. Messages" рекомендуется пользоваться всегда, как только будет получен код ошибки AMQxxxx.



Возможные ошибки при создании менеджера очередей отражены в документации [7]. Этой книгой " WebSphere MQ. Messages" рекомендуется пользоваться всегда, как только будет получен код ошибки AMQxxxx.

Существует еще один важный параметр CCSID – кодовая страница менеджера. При создании менеджеров на разных серверных платформах и в разных операционных системах кодовые страницы могут отличаться. Для того чтобы исключить процедуру конвертации при передаче сообщений между менеджерами с разными кодовыми страницами рекомендуется на всех менеджерах установить одну и ту же кодовую страницу, например 1251. У WebSphere MQ существует множество таблиц перекодировки, с помощью которых осуществляется конвертация сообщений. Данные таблицы находятся в каталоге C:\Program Files\IBM\WebSphere MQ\conv\table. Если нет соответствующей таблицы перекодировки, то существует вероятность, что соединение между менеджерами очередей будет невозможно.

Просмотреть и изменить текущую кодовую страницу можно с помощью утилиты runmqsc.exe и соответствующих команд в ней, например, alter qmgr force ccsid(1251). Итак, используя простейший синтаксис :



crtmqm /u DEAD_LETTER QM_Win2000

можно создать менеджер QM_Win2000. Затем следует его активизировать (стартовать).

Для этого существует утилита strmqm:

strmqm –c –z MQMName

где:

-c - При указании этой опции менеджер стартует, пересоздает все системные объекты с параметрами по умолчанию и затем останавливается.

-z - Запрещает появление сообщений об ошибках. Использовать ее не рекомендуется.

MQMName - Имя менеджера.

Для простого старта менеджера по умолчанию достаточно набрать в командной строке:

strmqm Коды возврата при старте менеджера очередей:035162349697172100
Queue manager startedМенеджер очередей стартовал
Queue manager being createdМенеджер очередей создается
Queue manager runningМенеджер очередей уже работает
Queue manager does not existМенеджер очередей не существует
Log not availableЛог-файл не доступен
Queue manager stoppingМенеджер очередей останавливается
Storage not availableУстройство записи недоступно
Unexpected errorНепредвиденная ошибка
Queue manager name errorОшибочное имя менеджера очередей
Log location invalidНеверное расположение лог-файла


Для остановки менеджера очередей существует утилита endmqm:

endmqm –c/-w/-i/-p –z MQMName

где:

-c - Менеджер остановится только после того, как все приложения, работающие с объектами WebSphere MQ "отсоединятся" от самих объектов, то есть ни один объект не будет "захвачен" приложениями. Причем менеджер будет ждать, пока не выполнятся все запросы (действия) приложений. При выполнении команды с этой опцией управление сразу же передается командной строке и не выдается никаких сообщений об остановке.

-w - Практически то же, что и с опцией –с, за исключением того, что пока менеджер останавливается, управление не передается командной строке, а выводится сообщение "Waiting for queue manager MQMName to end".

-i - Менеджер выполнит все текущие запросы приложений и остановится. Если в процессе остановки появятся новые запросы и необработанные транзакции, то при последующем старте менеджера произойдет откат незавершенных транзакций. Управление передается командной строке после остановки менеджера.

-p - Немедленная остановка. Менеджер остановится, не обрабатывая все текущие транзакции и запросы приложений. Остановка с данной опцией может привести к непредсказуемым результатам. Все процессы WebSphere MQ, которые не могут быть корректно остановлены в течение 30 секунд после начала работы endmqm будут отключены.

Перед остановкой менеджера необходимо остановить все приложения, работающие с WebSphere MQ, несмотря на то, что WebSphere MQ в процессе остановки менеджера будет пытаться их отключить.

Коды возврата при остановке менеджера очередей:03164049697172
Queue manager endedМенеджер очередей остановлен
Queue manager being createdМенеджер очередей создается
Queue manager does not existМенеджер очередей не существует
Queue manager not availableМенеджер очередей не доступен
Queue manager stoppingМенеджер очередей останавливается
Storage not availableУстройство записи недоступно
Unexpected errorНепредвиденная ошибка
Queue manager name errorОшибочное имя менеджера очередей


И последняя команда – удаление менеджера:

dltmqm –z MQMName

где:

-z - Запрещает появление сообщений об ошибках. Использовать ее не рекомендуется.

MQMName - Имя менеджера.

При выполнении этой команды удаляется не только менеджер, но и все его объекты. Перед удалением менеджера следует его остановить с помощью команды endmqm. Важно, чтобы в момент удаления менеджера, каталог с содержимым менеджера (для WindowsNT это - C:\Program Files\IBM\WebSphere MQ\Qmgrs\QM_Win2000) не был никем "захвачен", иначе удалить менеджер невозможно.

Коды возврата при удалении менеджера очередей:0351649697172100112
Queue manager deletedМенеджер очередей удален
Queue manager being createdМенеджер очередей создается
Queue manager runningМенеджер очередей уже работает
Queue manager does not existМенеджер очередей не существует
Queue manager stoppingМенеджер очередей останавливается
Storage not availableУстройство записи недоступно
Unexpected errorНепредвиденная ошибка
Queue manager name errorОшибочное имя менеджера очередей
Log location invalidНеверное расположение лог-файла
Queue manager deleted. However, there was a problem processing the default queue manager definition in the product configuration file. The default queue manager specification may be incorrect.Менеджер очередей удален, однако в конфигурационном файле осталось его имя, как имя менеджера по умолчанию. Описание менеджера по умолчанию может быть неверным.
Управлять работой менеджеров очередей можно с помощью WebSphere MQ Explorer.

Процесс создания менеджера:

  1. Запустить WebSphere MQ Explorer.
  2. Щелкнуть правой кнопкой мыши по "Queue Managers".
  3. Выбрать из контекстного меню пункт "New" => "Queue Manager".
  4. Заполнить появившуюся форму (рис.2.7) Create Queue Manager (Step 1).


    увеличить изображение
    Рис. 2.7.  Создание менеджера очередей (Шаг 1)

    В этой форме:

    Queue Manager – имя менеджера;

    Make this the default queue manager – флажок, определяющий будет ли этот менеджер менеджером по умолчанию;



    Def. Transmission Queue – имя трансмиссионной очереди по умолчанию рекомендуется оставить пустым во избежание ошибок передачи данных;

    Dead Letter Queue – очередь недоставленных сообщений;

    Max Handle Limit – количество открытых объектов WebSphere MQ одним приложением (одна программа не сможет работать одновременно более чем с 256 очередями);

    Trigger Interval – значение интервала времени, через который опрашивается состояние очереди триггерными процессами;

    Max Uncommitted Msgs – максимальное количество сообщений, которые могут находится в очередях и транзакции по их отправке еще не завершились;

  5. Нажать кнопку "Next" и заполнить форму (рис.2.8) Create Queue Manager (Step2)


    увеличить изображение
    Рис. 2.8.  Создание менеджера очередей (Шаг 2)

    В этой форме:

    Use circular/linear logging - с помощью данного флажка можно выбрать тип логирования на вновь создаваемом менеджере;

    Log Path – указывает путь, где будут созданы лог-файлы;

    Log File Size - размер файла логирования, размер созданного файла будет в 4 раза превышать указанное число;

    Log Primary Files – количество первичных файлов логирования;

    Log Secondary Files – число вторичных файлов логирования.

  6. Нажать кнопку "Next" и заполнить форму (рис.2.9) Create Queue Manager (Step3)


    увеличить изображение
    Рис. 2.9.  Создание менеджера очередей (Шаг 3)

    В этой форме:

    Start Queue Manager – при установленном флажке менеджер очередей будет активизирован непосредственно сразу после создания;

    Create Server Connection Channel – установка данного флажка позволит создать канал (SYSTEM.ADMIN.SVRCONN) для удаленного управления объектами менеджера через протокол TCP/IP.

  7. Нажать кнопку "Next" и заполнить форму (рис.2.10) Create Queue Manager (Step4)


    увеличить изображение
    Рис. 2.10.  Создание менеджера очередей (Шаг 4)

    В этой форме:

    Create listener configured for TCP/IP – создает listener для удаленного подключения к менеджеру;

    Listen on port number – номер порта для работы listener (по умолчанию - 1414).





После нажатия на кнопку "Finish" менеджер с именем QM_Win2000 будет создан и произведен его старт. На оснастке консоли WebSphere MQ Explorer с левой стороны должно появиться имя менеджера, как это показано на рис. 2.6.

Для удаления менеджера очередей через WebSphere MQ Explorer нужно вызвать контекстное меню из имени менеджера и выполнить команду "Stop". Следует напомнить, что перед этим нужно остановить все receiver- каналы, а также все программы, помещающие или считывающие сообщения из очередей. Способ остановки можно выбрать "Immediate" (незамедлительно). После того как менеджер будет остановлен, опять же с помощью контекстного меню выполнить команду "Delete". После этого менеджер очередей будет удален вместе со всеми своими объектами, и его восстановление будет невозможно.

В заключении можно добавить, что все эти процессы не представляют особой сложности. Процесс установки WebSphere MQ на NT-платформу занимает около получаса и решающим обстоятельством является мощность или скорость дисковых ресурсов. На процесс создания менеджера после ввода всех параметров уйдет не более минуты. Время остановки менеджера зависит от количества объектов. Для примера можно сказать, что на компьютере Pentium III с тактовой частотой 700 MHz и оперативной памятью 512Mb, менеджер, содержащий 1000 очередей, останавливается меньше чем за 30 секунд.

© 2003-2007 INTUIT.ru. Все права защищены.

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