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