Создание менеджера очередей в среде z/OS

Для того, что бы создать и запустить менеджер очередей в среде z/OS необходимо выполнить приведенную последовательность шагов.

Эту последовательность можно условно разделить на две части:

  • Первая часть – установка базовой математики продукта из комплекта поставки (APF авторизация, обновление Link List и LPA, определение подсистемы для менеджера и д.р.)
  • Вторая – определение среды исполнения менеджера (создание PageSets, BSDSs, журналов работы, запуск заранее подготовленных заданий, шаблоны которых располагаются в библиотеке: ++THLQUAL++.SCSQPROC)

Где ++THLQUAL++ – это квалификатор верхнего уровня, задаваемый системными администраторами, при установке базового ПО WebSphere MQ, обычно MQM.

Прежде чем преступить ко второй части, Вы должны спроектировать архитектуру или топологию среды, в которой может быть от одного (в случае работы приложений в рамках одного LPAR) до десятков менеджеров очередей, функционирующих на разных LPAR’ах и платформах (Windows, Unix, z/OS) в случае гетерогенной среды.

Первую часть (шаги с 1 по 5) обычно выполнят системные администраторы z/OS. Вторую часть – выполняют администраторы WebSphere MQ. Т.к. пятый шаг – определение подсистемы для менеджера очередей – требует особого внимания, то именно с него мы начнем подробно рассматривать процесс создания менеджера. В ходе рассмотрения мы несколько изменим порядок шагов, т.к., по нашему мнению, предложенная в Infocenter последовательность, не является оптимальной. Например, некорректно редактировать процедуру на запуск менеджера, не определившись перед этим с PageSets, BSDSs, логами и не создав их.

В статье описан процесс создания менеджера очередей WebSphere MQ for z/OS V7.1.0

Определение подсистемы WebSphere MQ в z/OS

В случае использования нескольких менеджеров на одном LPAR, этот шаг выполняется для каждого менеджера. Прописать подсистему можно динамически с использованием команды: SETSSI ADD,S=ssid,I=CSQ3INI,P='CSQ3EPX,cpf,scope', однако необходимо помнить, что в данном случае после перезагрузки LPAR информация о подсистеме будет потеряна. Обычно описание подсистемы выполняется и динамически и статически в разделе IEFSSNss, располагающемся в библиотеке SYS1.PARMLIB.

Параметры команды SETSSI ADD:

ssid – Имя, идентификатор подсистемы. Должен состоять их 4 символов, имя должно начинаться с буквы. Допустимо использовать буквы верхнего регистра английского алфавита (от A до Z) и цифры от 0 до 9. Важно: менеджер будет иметь такое же имя как и подсистема.

cpf – Префикс для команд. Должен быть уникальным, т.е. не использоваться для других подсистем и может состоять максимум из 8 символов. Обычно состоит из специального символа (. ⁄ ( ) * & + – = ¢ < | ! ; % _ ? : >) и имени подсистемы/менеджера (для подробного ознакомления с правилами составления cpf см. Defining command prefix strings).

scopeОбласть системы, определяющая рамки регистрации и использования cpf, применяется в z/OS sysplex. Предоставляет возможность выдавать команды с cpf,  с любой консоли в sysplex. Может принимать одно из трех значений:

  • M – Область образа z/OS. Команды должны выдаваться с консоли того образа z/OS, где работает целевая подсистема. Укажите этот параметр, если Вы не работаете в sysplex. 
  • S – “Sysplex started scope”. CPF регистрируется в z/OS, когда запускается подсистема WebSphere MQ и остается активным, пока подсистема работает. Команды на запуск менеджера надо выдавать с целевой системы (либо используя команду ROUTE (Синтаксис: ro sysname,command) с другого LPAR в sysplex), но все дальнейшие команды можно выдавать из любой консоли в sysplex, они будут направляться на целевую систему автоматически.
  • X – “Sysplex IPL scope”. CPF регистрируется в z/OS, в момент, когда система производит IPL (Initial Program Load) WebSphere MQ и остается зарегистрированным, пока образ z/OS активен. Команды WebSphere MQ могут быть выданы с любой консоли в sysplex и будут направлены на образ z/OS, где выполняется целевая подсистема MQ, автоматически.

Для детальной информации о параметре scope см. CPFs in a sysplex environment.

Полезно знать:

  • Команда для просмотра всех подсистем на целевом MVS: D SSI
  • Команда для переключения в лог другого LPAR в sysplex: SYSID имя_системы
  • Команда для переключения в DA другого LPAR в sysplex: SYSNAME имя_системы

Пример динамического определения подсистемы с именем WMQ2:

SETSSI ADD,S=WMQ2,I=CSQ3INI,P=’CSQ3EPX,+WMQ2,M’

Статическое определение подсистемы WMQ2, в разделе IEFSSNss:

/* WebSphere MQ */
SUBSYS SUBNAME(WMQ2)
INITRTN(CSQ3INI)
INITPARM(‘CSQ3EPX,+WMQ2,M’)

Создание управляющих наборов (BSDS) и журналов работы (active logs) менеджера

Первое, что нужно сделать, это определиться с ++HLQ++ квалификатором верхнего уровня, определяющим расположение наборов менеджера. Рекомендовано, что бы ++HLQ++ содержал имя менеджера и его инстанса (instance). Это составное имя, которое будет использоваться в именах наборов для менеджера.

Для каждой подсистемы MQ, а значит для каждого менеджера, необходимо создать свою библиотеку для размещения заданий, специально сконфигурированных именно для этого менеджера (иногда для отдельного инстанса менеджера). Имя библиотеки должно включать ++HLQ++. В эту библиотеку будут скопированы задания из библиотеки ++THLQUAL++.SCSQPROC, после чего они будут отредактированы. Советую при копировании, в именах копий заданий, изменить “CSQ4″ на имя соответствующего менеджера очередей. 

На этом этапе копируем и редактируем задание CSQ4BSDS, предназначенное для создания управляющих наборов BSDS и журналов работы (active logs).

Прежде чем редактировать задание CSQ4BSDS, администратору необходимо ответить на следующие вопросы:

  1. Определить количество активных журналов. Минимально возможное количество журналов 3, по умолчанию – 4.
  2. Необходимо ли вести копию управляющего набора BSDS и копии журналов работы (циклически перезаписываемые).
  3. Исходя из существующей или планируемой нагрузки определить размер активного журнала. Оптимально, что бы журнал заполнялся за 30 минут работы. По умолчанию размер журналов задается в записях (RECORDS) и составляет 180000 записей, что равно 720 Мб.

Преступаем непосредственно к редактированию задания. Замените переменные обрамленные “++“, на реальные значения. Описание всех, используемых в задании, переменных содержится в комментариях. Для того, что бы заменить переменную сразу во всем задании используйте следующую команду:

change что_меняем на_что_меняем all

Те строки, которые не нужны комментируем или удаляем. Например, Вы решили что управляющий набор BSDS будет один, тогда комментируем/удаляем все строки, касающиеся второго набора BSDS.

Если Вы решили, что необходимо вести копию управляющего набора и/или копии активных журналов, то, при их определении в задании, укажите два разных диска для размещения, которые находятся на разных дисковых стойках – это обеспечит отказоустойчивость.

После редактирования задания, сохраняем его и запускаем. В результате успешного выполнения будут созданы управляющие наборы и активные журналы.

Создание наборов страниц (PageSets)

Из ++THLQUAL++.SCSQPROC в созданную ранее библиотеку для менеджера копируем мембер CSQ4PAGE – задание на создание страничных наборов PageSets, в которых будут размещаться данные. Приступаем к редактированию скопированного задания.

В комментариях отражены все используемые переменные и те моменты, на которые следует обратить внимание.

Сперва следует определиться с количеством PageSets. Обязательным является наличие нулевого PageSet – PSID00, в котором будут содержаться определения объектов WMQ. Рекомендовано, что бы был определен по крайней мере еще один PageSet, для того, что бы определения объектов WMQ и сообщения были разделены. По умолчанию создаются 5 PageSet-ов:

PSID00 – определения объектов (object definitions)
PSID01 – системные, служебные сообщения (system-related messages)
PSID02 – важные “долгоживущие” сообщения (important long-lived messages)
PSID03 – “короткоживущие” сообщения (short-lived messages)
PSID04 – всевозможные сообщения (miscellaneous messages)

Возможно определить до 100  PageSets для каждого менеджера очередей.

Теперь необходимо определиться с размерами PageSets, первичным и вторичным распределением. Первичное распределение – количество свободного пространства на диске, которое будет выделено под целевой PageSet сразу после его создания. Вторичное распределение – количество свободного места, которое будет добавлено по превышению размеров первичного распределения без останова менеджера. Размер указывается в RECORDS и по умолчанию соответствует RECORDS(1000 500), где 1000 – первичное распределение, 500 – вторичное, что равно 4 и 2 Мб соответственно. При указании размеров необходимо основываться на следующем:

  • Учитывать общий объем информации принимаемый всеми задачами, сообщения которых будут располагаться в целевом PageSet, в соответствии с максимальным временем простоя данных задач.

Что касается расположения PageSet на дисках, идеальным вариантом является размещение каждого PageSet на отдельном диске, для обеспечения надежности.

Заменяем переменные, обрамленные “++”, на реальные значения, комментируем или удаляем ненужные строки. После чего, сохраняем и запускаем это задание. В результате успешного выполнения будут созданы PageSets.

Создание модуля параметров для менеджера (system parameter module)

Из ++THLQUAL++.SCSQPROC в созданную ранее библиотеку для менеджера копируем мембер CSQ4ZPRM – задание, которое собирает новый модуль параметров менеджера. Это задание состоит из трех секций:

CSQ6LOGP – параметры журналов

Следует обратить внимание:

  • Параметр OFFLOAD, определяющий будет ли архивирование (сброс журнала в последовательный набор) журналов (линейные). Если архивирование журналов не делать, то лучше увеличить кол-во активных журналов.
  • Параметр TWOBSDS, определяющий необходимо ли вести вторую копию BSDS. Если “TWOBSDS=YES”, то копии BSDSs должны быть созданы ранее, в задании CSQ4BSDS.
  • Параметр TWOACTV, определяющий необходимо ли вести вторую копию активных журналов, если “TWOACTV=YES”, то копии активных журналов должны быть созданы ранее, в задании CSQ4BSDS.

CSQ6ARVP – параметры архивных журналов

Следует обратить внимание:

  • ARCPFX1 и ARCPFX2 – префиксы наборов данных, создаваемых менеджером для хранения архивных журналов.
  • Параметр BLKSIZE, определяющий размер блока (BLOCKSIZE) архивного журнала.
  • ARCRETN – количество дней хранения архивных журналов.

CSQ6SYSP – системные параметры менеджера

Следует обратить внимание на параметры:

  • CMDUSER – пользователь, от которого менеджер сам себе выдает внутренние команды по управлению объектами.
  • LOGLOAD – количество операций между точками синхронизации.
  • QMCCSID – кодовая страница, в которой работает менеджер (0- по умолчанию, соответствует 500 без поддержки кириллицы).
  • QSGDATA – QUEUE-SHARING группа для работы в SYSPLEX.

В самом конце задания CSQ4ZPRM необходимо заменить ++NAME++ на имя скомпилированного модуля с параметрами менеджера. Лучше размещать этот мембер в отдельной библиотеке (задается в SYSLMOD  DD DSN=++HLQ.USERAUTH++).

После редактирования, необходимо запустить задание CSQ4ZPRM, для создания модуля параметров для менеджера.

Создание процедуры на запуск менеджера

На этом этапе создаем процедуру на запуск менеджера, для этого из ++THLQUAL++.SCSQPROC в созданную ранее библиотеку копируем мембер CSQ4MSTR (или CSQ4MSRR).

Имя процедуры на запуск менеджера складывается из двух частей. Первая – имя подсистемы MQ, вторая – MSTR или MSRR. Это зависит от того, какую из двух процедур, мы будем использовать для запуска менеджера: CSQ4MSTR – использует один page set для каждого класса хранения (storage class), CSQ4MSRR – использует несколько page sets для большинства классов хранения. Скопируйте одну их этих процедур к себе в библиотеку и переименуйте ее в xxxxMSTR, где xxxx имя вашей подсистемы WebSphere MQ. Например, для менеджера WMQ2 процедура будет называться WMQ2MSTR.

Отредактируем набор CSQ4MSTR:

В секции “STEPLIB   DD“, в имени набора thlqual.SCSQANL++LANGLETTER++, замените переменную ++LANGLETTER++ на букву, соответствующую выбранному языку.

Замените “++THLQUAL++.SCSQPROC” на имя созданной библиотеки, содержащей кастомизированные наборы. Замените остальные переменные, обрамленные “++” на соответствующие значения. Описание всех используемых приложений приведено в комментариях, в шапке задания.

Секция CSQINP1 – обязательная часть, в которой подключается мембер CSQ4INP1, содержащий команды по созданию буфер пулов (Buffer Pools) и их привязки к наборам страниц (Page Sets).

В секции CSQINP2 подключаются мемберы, содержащие команды по созданию системных и дополнительных объектов, описанных в следующих заданиях:

  • CSQ4INSG – Системные объекты (SYSTEM objects) общего назначения (SYSTEM.DEF DEFINITIONS)
  • CSQ4INSS – Системные объекты для использования queue-sharing group в sysplex
  • CSQ4INSX – Системные объекты для распределенной обработки (distributed queueing), распределенного pub/sub и кластеров
  • CSQ4INSJ – Системные объекты для publish/subscribe используя JMS
  • CSQ4INSR – Системные объекты для взаимодействия с брокером (WMB) и WebSphere AS
  • CSQ4INSA – Идентификация канала (Channel Authentication)
  • CSQ4INYG – Ваши объекты (YOUR objects) общего назначения (dead-letter queue, default transmission queue и т.д.)
  • CSQ4INYD – Ваши объекты для распределенной обработки (distributed queueing)
  • CSQ4INYC – Ваши объекты для работы с кластерами
  • CSQ4INYS  – Ваши классы хранения (storage classes), когда используются отдельные page set-ы для каждого типа сообщений
  • CSQ4INYR – Ваши классы хранения (storage classes), когда используются несколько page set-ов для основных типов сообщений
  • CSQ4INST – Определение SYSTEM.DEFAULT.SUB для работы publish/subscribe
  • CSQ4INYT – Display commands (DISPLAY TOPIC, DISPLAY SUB)

Подключите необходимые мемберы и закомментируйте те, которые не собираетесь пока использовать. Все подключенные мемберы скопируйте из ++THLQUAL++.SCSQPROC в созданную ранее библиотеку для заданий менеджера. После чего эти скопированные мемберы требуется отредактировать.

В “DD CSQOUT1” и “CSQOUT2” необходимо определить наборы для вывода результатов исполнения команд, согласно принятой у Вас политике.

В “DD CSQPXXXX” необходимо определить имена страничных наборов (Page Set Data Sets), с которыми будет работать Ваш менеджер, где XXXX может принимать значения от 0000 до 0099 (для версии WMQ V7.1).

В “DD CSQXLIB” – определяется библиотека, содержащая бинарные модули, для подключения собственных программ, расширяющих функционал менеджера.

После редактирования, необходимо скопировать процедуру на запуск менеджера в системную библиотеку процедур (SYS1.PROCLIB).

Создание процедуры на запуск канального инициатора

На этом этапе создаем процедуру на запуск канального инициатора (channel initiator), для этого из ++THLQUAL++.SCSQPROC в созданную ранее библиотеку с заданиями для менеджера копируем мембер CSQ4CHIN.

Секцию “STEPLIB“, если требуется, заполняем по аналогии с остальными заданиями (указываем ++THLQUAL++, ++LEQUAL++, ++LANGLETTER++ и ++SSLQUAL++).

В секции “CSQINPX” подключаем модуль CSQ4INPX, который необходимо скопировать из ++THLQUAL++.SCSQPROC в созданную ранее библиотеку для заданий менеджера.

В “CSQXLIB” определяется библиотека, содержащая бинарные модули, для подключения собственных программ, расширяющих функционал канального инициатора (например, канальные выходы).

Далее следует отредактировать скопированный мембер CSQ4INPX – в нем содержатся команды по запуску листнеров (Listeners), по запуску и останову каналов и другие команды по распределенной обработке (distributed queueing).

После редактирования, необходимо скопировать процедуру на запуск канального инициатора в системную библиотеку процедур (SYS1.PROCLIB).

Запуск и останов менеджера и канального инициатора

Для запуска менеджера необходимо использовать следующую команду:

+cpf START QMGR PARM(CSQ1ZPRM)

где CSQ1ZPRM – имя модуля параметров для менеджера.

Для останова менеджера следует использовать команду:

+cpf STOP QMGR

Для запуска канального инициатора необходимо использовать команду:

+cpf START CHINIT

Для останова канального инициатора следует использовать команду:

+cpf STOP CHINIT

В приведенных выше командах вместо “+cpf” используйте ваш собственный префикс для команд, определенный для подсистемы WMQ.

На этом процесс создания менеджера очередей WebSphere MQ for z/OS закончен.

VN:F [1.9.22_1171]
Rating: 5.0/5 (2 votes cast)
Метки: , , ,
Опубликовано в WebSphere MQ, Основы

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Выбор языка: