ham_action_fail_notify_signal(), ham_action_fail_notify_signal_node()

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

Прототип:

#include <ha/ham.h>
int ham_action_fail_notify_signal( ham_action_t *ahdl,
const char *aname,
int nd,
pid_t topid,
int signum,
int code,
int value,
unsigned flags );
int ham_action_fail_notify_signal_node( ham_action_t *ahdl,
const char *aname,
const char *nodename,
pid_t topid,
int signum,
int code,
int value,
unsigned flags );

Аргументы:

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

Библиотека:

libham

Описание:

Функция ham_action_fail_notify_signal*() добавляет альтернативное действие (aname) к указанному действию. Действие доставит сигнал, указанный в pulsecode, на указанный nd/ / или nodename/ / со значением, заданным в value. nd, указанный для ham_action_notify_signal(), является идентификатором узла получателя. 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)