(PHP 7.2 >= 7.2.14, PHP 8, PHP 7 >= 7.3.1, PHP 8, PECL OCI8 >= 2.2.0)
oci_set_call_timeout — Définit un délai d'attente en millisecondes pour les appels de base de données
Définit un délai d'attente limitant le temps maximum qu'un aller-retour de base de données utilisant cette connexion peut prendre.
Chaque opération OCI8 peut effectuer zéro ou plusieurs appels à la bibliothèque cliente
d'Oracle. Ces appels internes peuvent ensuite effectuer zéro ou plusieurs aller-retours vers
la base de données Oracle. Si l'un de ces aller-retours prend
plus de time_out
millisecondes,
alors l'opération est annulée et une erreur est renvoyée à l'application.
La valeur time_out
s'applique à chaque aller-retour
individuellement, et non à la somme de tous les aller-retours. Le temps passé
à traiter en PHP OCI8 avant ou après l'achèvement de chaque
aller-retour n'est pas compté.
Lorsqu'un appel est interrompu, Oracle tentera de nettoyer la
connexion pour la réutiliser. Cette opération est autorisée à s'exécuter pendant
une autre période de time_out
. En fonction du
résultat du nettoyage, la connexion peut ou non être réutilisable.
Lorsque des connexions persistantes sont utilisées, la valeur de délai d'attente sera conservée entre les requêtes PHP.
La fonction oci_set_call_timeout() est disponible lorsque OCI8 utilise les bibliothèques clientes Oracle 18 (ou ultérieures).
connection
Un identifiant de connexion Oracle, retourné par la fonction oci_connect(), oci_pconnect() ou la fonction oci_new_connect().
timeout
Le temps maximum en millisecondes qu'un aller-retour entre PHP et la base de données Oracle peut prendre.
Exemple #1 Mise en place du délai d'attente
<?php
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
oci_set_call_timeout($conn, 5000);
?>