(PHP 7.2 >= 7.2.14, PHP 8, PHP 7 >= 7.3.1, PHP 8, PECL OCI8 >= 2.2.0)
oci_set_call_timeout — Устанавливает время ожидания в миллисекундах для вызовов базы данных
Устанавливает время ожидания, ограничивающее максимальное время кругового пути (round-trip) базы данных при использовании этого подключения.
Каждая операция 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
Максимальное время в миллисекундах, которое может занять один циклический путь (round-trip) между PHP и базой данных Oracle
Возвращает true
в случае успешного выполнения или false
в случае возникновения ошибки.
Пример #1 Установка времени ожидания
<?php
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
oci_set_call_timeout($conn, 5000);
?>