(PHP 7.2 >= 7.2.14, PHP 8, PHP 7 >= 7.3.1, PHP 8, PECL OCI8 >= 2.2.0)
oci_set_call_timeout — Устанавливает время ожидания в миллисекундах для вызовов базы данных
Функция устанавливает для соединения время ожидания, которое ограничивает максимальное время, которое займёт обмен с базой данных в оба конца.
Каждая операция OCI8 выполняется ноль или более вызовов к клиентской библиотеки Oracle.
Затем эти внутренние вызовы приводят к нулевому или большему количеству обращений к базе данных Oracle.
Если какой-либо из этих циклических обходов занимает больше миллисекунд, чем указали в параметре time_out
,
операция отменяется и приложению возвращается ошибка.
Значение time_out
применяется к каждому циклу по отдельности,
а не к сумме всех циклов в оба конца.
Время, затраченное на обработку в PHP-модуле OCI8 до или после завершения каждого циклического пути, не учитывается.
При прерывании вызова БД Oracle попытается очистить соединение для переиспользования.
Эту операцию разрешается запускать в течение другого периода time_out
.
Будет ли соединение многоразовым, зависит от результатов очистки.
В постоянных соединениях значение времени ожидания сохраняется для каждого PHP-запроса.
Функция oci_set_call_timeout() доступна, когда модуль OCI8 использует клиентские библиотеки Oracle 18 или более поздних версий.
connection
Идентификатор соединения Oracle, который возвращают функции oci_connect(), oci_pconnect() или oci_new_connect().
timeout
Максимальное время одного обмена данными между PHP и базой данных Oracle в миллисекундах.
Функция возвращает true
, если выполнилась успешно, или false
, если возникла ошибка.
Пример #1 Пример установки времени ожидания
<?php
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
oci_set_call_timeout($conn, 5000);
?>