Операционная система ЗОСРВ «Нейтрино» > Руководство разработчика > Программные интерфейсы общего назначения > Прикладные библиотеки и технологии > Библиотека менеджера QDB > Справочник по клиентскому API менеджера QDB > qdb_setbusytimeout()



qdb_setbusytimeout()

Установка таймаута для соединения с базой данных

Прототип:

#include <qdb/qdb.h>
int qdb_setbusytimeout( qdb_hdl_t *hdl,
int timeout );

Аргументы:

hdl
Указатель на дескриптор базы данных.
timeout
Таймаут в миллисекундах или одно из значений:
QDB_TIMEOUT_NONBLOCK
Аналог значения 0. Это означает, что qdb_statement() возвращает управление немедленно, если файл базы данных заблокирован.
QDB_TIMEOUT_BLOCK
Аналог бесконечного ожидания. Вызов qdb_statement() будет ожидать разблокировки файла базы данных.

Библиотека:

qdb

Описание:

Функция позволяет установить таймаут для соединения с базой данных. Начальное значение таймаута указывается опцией -t сервису qdb со значением по умолчанию в 5 сек. Значение 0 эквивалентно QDB_TIMEOUT_NONBLOCK.

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


Note: Если установлен флаг QDB_CONN_NONBLOCKING, значение таймаута будет сброшено в 0 или в значение по умолчанию для -t. Аналогично, установка флага QDB_TIMEOUT_NONBLOCK неявно установит флаг QDB_CONN_NONBLOCKING.

Флаг QDB_CONN_NONBLOCKING может быть установлен с помощью qdb_connect() или qdb_parameters().


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

≥0
Успешное завершение, возвращается предыдущее значение таймаута.
-1
Возникла ошибка. Код ошибки записан в errno.

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

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

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

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

qdb_connect(), qdb_parameters(), qdb_statement()




Предыдущий раздел: перейти