array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.oci-set-call-timout.php', 1 => 'oci_set_call_timeout', ), 'up' => array ( 0 => 'ref.oci8.php', 1 => 'OCI8 Функции', ), 'prev' => array ( 0 => 'function.oci-set-action.php', 1 => 'oci_set_action', ), 'next' => array ( 0 => 'function.oci-set-client-identifier.php', 1 => 'oci_set_client_identifier', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/oci8/functions/oci-set-call-timeout.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(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);
?>