Настройка программ выхода API
Программа выхода API - это модуль (файл .dll), код которого вы создаете самостоятельно и запускаете непосредственно до или после вызовов MQI.
Об этой задаче
Когда IBM® MQ получает от программы вызов к одной из точек входа его API, IBM MQ вызывает вашу программу выхода API. В зависимости о того, как настроена эта программа выхода API, она выполняется или перед, или после выполнения MQI.
Можно настроить одну или несколько программ выхода (или не настраивать ни одной), а также задать порядок, в котором они должны вызываться. В Windows и Linux (x86 и x86-64) программы выхода API можно настроить с помощью IBM MQ Explorer. Данные конфигурации хранятся в файлах .ini.
Существуют три типа программ выхода API:
- Общие (ApiExitCommon)
- Один набор определений на компьютер. Программы выхода API, которые определены (если они есть), считываются и применяются к администратору очередей при его запуске. Для настройки общих программ выхода API применяется окно свойств IBM MQ. Общие программы выхода отображаются в таблице Локальные программы выхода API в окнах свойств локальных администраторов очередей.
- Шаблоны (ApiExitTemplate)
- Один набор определений на компьютер. При создании администратора очередей определенные таким образом программы выхода API (если они есть) копируются в этот администратор очередей как локальные программы выхода. Для настройки шаблонов программ выхода API применяется окно свойств IBM MQ.
- Локальные (ApiExitLocal)
- Один набор определений на администратор очередей. В ходе запуска администратора такие точки выхода API переопределяют общие точки выхода с совпадающими атрибутами Имя. В случае переопределения заменяются все атрибуты общих программ выхода API даже в том случае, если необязательный атрибут Данные содержит значение. Для настройки локальных программ выхода API применяется окно свойств администратора очередей.
Настройка программы выхода API в IBM MQ Explorer
Об этой задаче
Процедура
- Откройте подходящее окно свойств:
- На странице Программы выхода нажмите кнопку Добавить.... Откроется окно Добавить программу выхода API.
- Введите необходимую информацию в полях окна Добавить программу выхода API.
- Нажмите кнопку OK для создания программы входа и закрытия окна Добавить программу выхода API.
Результаты
Переопределение общей программы выхода API локальной программой выхода
Об этой задаче
Однако, в администратор очередей может потребоваться добавить локальную программу выхода API, чтобы она использовалась вместо общей программы выхода API. В этом случае необходимо переопределить общую программу выхода API с помощью локальной программы выхода API.
Для переопределения общей программы выхода API с помощью локальной программы выхода API:Процедура
- Откройте страницу Программы выхода в окне свойств администратора очередей.
- Щелкните на нужной программе выхода в таблице Локальные программы выхода API.
- Нажмите кнопку Переопределить. Откроется окно Изменить программу выхода API, содержащее имя показанной общей программы выхода API.
- Введите сведения о локальной программе выхода API в окне Изменить программу выхода API и нажмите кнопку OK для сохранения изменений.
Результаты
Атрибуты программ выхода API
Об этой задаче
Атрибут | Назначение | Ключ раздела |
---|---|---|
Имя | Описательное имя программы выхода API, передаваемое ей в поле ExitInfoName структуры MQAXP. Имя длиной не более 48 символов должно быть уникальным и содержать только символы, допустимые для имен объектов IBM MQ, таких как имена очередей. | Имя |
Тип | Тип программы выхода: общая, шаблон, локальная или переопределить. | (Нет отдельного ключа раздела.) |
Sequence | Числовое значение без знаков, определяющее последовательность, в которой данная программа выхода API вызывается по сравнению с другими программами выхода API. Программа выхода API с низким значением последовательности вызывается до программы выхода API с высоким значением. Порядок вызова программ выхода API с одинаковыми значениями последовательности не определен. В порядковых номерах программ выхода API, определенных для администратора очередей, допускаются промежутки. | Sequence |
Модуль | Указывает модуль, который содержит исходный код для выхода API. Если в этом поле указан полный путь к модулю, он используется, как есть. Если там указано только имя модуля, его поиск осуществляется с помощью того же метода, что используется для программ выхода канала, т.е. с помощью значения в поле Путь по умолчанию к программе выхода на странице Программы выхода. | Модуль |
Функция | Указывает имя точки входа функции в модуль, который содержит исходный код для выхода API. Эта точка входа является функцией MQ_INIT_EXIT. Длина этого поля ограничена значением MQ_EXIT_NAME_LENGTH. | Функция |
Данные | Если этот атрибут задан, то начальные и конечные пробелы удаляются, остальная строка ограничивается 32 символами и результат передается в точку выхода в поле ExitData структуры MQAXP. Если он не указан, программе выхода в поле ExitData структуры MQAXP передается значение по умолчанию из 32 пробелов. | Данные |