Операционная система ЗОСРВ «Нейтрино» > Руководство разработчика > Интерфейсы различных подсистем > Менеджер высокой готовности (HAM) > HAM API > ham_action_fail_notify_pulse(), ham_action_fail_notify_pulse_node()



ham_action_fail_notify_pulse(), ham_action_fail_notify_pulse_node()

Добавить уведомляющий импульс к действию, которое будет выполнено, если соответствующее действие завершится с ошибкой

Прототип:

#include <ha/ham.h>
int ham_action_fail_notify_pulse( ham_action_t *ahdl,
const char *aname,
int nd,
pid_t topid,
int chid,
int pulsecode,
int value,
unsigned flags );
int ham_action_fail_notify_pulse_node( ham_action_t *ahdl,
const char *aname,
const char *nodename,
pid_t topid,
int chid,
int pulsecode,
int value,
unsigned flags );

Аргументы:

ahdl
Дескриптор действия HAM. Может быть получен из:
aname
Действие HAM.
nd
Идентификатор узла получателя.
nodename
Удалённый получатель HAM.
topid
Идентификатор целевого процесса.
chid
Идентификатор канала, на котором находится topid.
pulsecode
Код доставляемого импульса.
value
Значение доставляемого импульса.
flags
Флаги в настоящий момент не поддерживаются.

Библиотека:

libham

Описание:

Функция ham_action_fail_notify_pulse*() добавляет альтернативное действие (aname) к указанному действию. Действие доставит импульс, указанный в pulsecode, на указанный nd/pid/chid или nodename/pid/chid со значением, заданным в value. nd, указанный для ham_action_notify_pulse(), является идентификатором узла получателя. nd должен быть действительным во время вызова.

Действие выполняется при сбое соответствующего действия, с которым оно связано.

Возвращаемое значение:

0
Успешное завершение.
-1
Возникла ошибка. Код ошибки записан в errno.

Коды ошибок:

EBADF
Не удалось подключиться к HAM.
EINVAL
Имя aname некорректно (например, содержит символ /) или имеет значение NULL. Не удалось подключиться к HAM. Это происходит, когда процесс, открывший соединение (используя ham_connect()), и процесс, вызывающий ham_action_execute(), не совпадают.
ENAMETOOLONG
Указанное имя (в aname) слишком длинное, т.е. оно превышает _POSIX_PATH_MAX (определено в <limits.h>). Обратите внимание, что общая длина имени объекта/условия/действия также ограничена _POSIX_PATH_MAX.
ENOENT
Отсутствует объект или условие с заданным дескриптором (chdl).
ENOMEM
Недостаточно памяти для создания нового дескриптора.

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

Классификация:

ЗОСРВ «Нейтрино»

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да

Тематические ссылки:

ham_action_execute(), ham_action_fail_execute(), ham_action_handle(), ham_action_handle_free(), ham_action_heartbeat_healthy(), ham_action_log(), ham_action_notify_pulse(), ham_action_notify_signal(), ham_action_remove(), ham_action_restart(), ham_action_waitfor(), ham_condition(), ham_condition_handle()




Предыдущий раздел: Менеджер высокой готовности (HAM)