Присоединить приложение как самостоятельно присоединяемый объект
#include <ha/ham.h>ham_entity_t * ham_attach_self( const char *ename,_Uint64t hp,int hpdl,int hpdh,unsigned flags );
HAMHBEATMIN
(см. <ha/ham.h>
). Следует использовать значение «0», если контрольные сигналы не требуются. ![]() | Обратите внимание, что здесь указывается интервал контрольных сигналов — однако, клиент все равно обязан вызвать функцию ham_heartbeat(), чтобы фактически передать контрольные сигналы. |
CONDHBEATMISSEDLOW
. Значение hpdl должно быть ≤ hpdh.CONDHBEATMISSEDHIGH
. Значение hpdh должно быть ≥ hpdl.libham
Вызов ham_attach_self() используется, чтобы присоединить приложение как самостоятельно присоединяемый объект к HAM. Самостоятельно присоединяемый объект — это процесс, который выбирает отправку тактов в HAM, и который затем отслеживает процесс на предмет сбоя. Самостоятельно присоединяемые объекты могут сами решать, в какой именно момент они хотят, чтобы их контролировали, при каких условиях они хотят действовать и когда они хотят прекратить мониторинг.
Следует обратить внимание, что самостоятельно присоединяемые объекты могут быть любыми процессами, а не только в сеансе 1 (в отличие от требования для вызова ham_attach()).
После того как объект был отсоединен, к нему можно добавлять условия и действия.
![]() | Поскольку функции ham_attach*() открывают соединение с HAM, для удобства они также выполняют первоначальный вызов ham_connect(). Таким образом, любой клиент, который делает вызов ham_attach_self(), не должен вызывать ham_connect() или ham_disconnect() до и после вызова (). |
/
) или имеет значение NULL
. _POSIX_PATH_MAX
(определено в <limits.h>
). Обратите внимание, что общая длина имени объекта/условия/действия также ограничена _POSIX_PATH_MAX
. В дополнение к вышеуказанным ошибкам HAM возвращает любую ошибку, с которой он сталкивается при обслуживании запроса добавления нового объекта в свой контекст.
ЗОСРВ «Нейтрино»
ham_attach(), ham_condition(), ham_connect(), ham_detach(), ham_detach_self(), ham_disconnect(), ham_heartbeat(), procmgr_daemon()
Предыдущий раздел: Менеджер высокой готовности (HAM)