|
8.88.6 Gestion de la connexion
L'extension oci8 fournit 3 fonctions différentes pour se connecter
à Oracle. Il vous appartient d'utiliser la fonction la plus appropriée
pour votre application ; les informations contenues dans cette section
vont vous aider à faire le bon choix.
La connexion à un serveur Oracle est une opération résonnablement couteuse
en terme de temps que celà prend. La fonction
oci_pconnect
utilise un cache persistent de connexion qui peut être réutilisé à travers
différents scripts. Cela signifie qu'une seule connexion sera utilisée par
processus PHP (ou enfant Apache).
Si votre application se connecte à Oracle en utilisant un jeu différent de crédance
pour chaque utilisateur web, le cache persistent utilisé
par la fonction
oci_pconnect
devient moins approprié
car l'augmentation du nombre concurrent d'utilisateurs va affecté les performances
de votre serveur Oracle, car il devra maintenir trop de connexions en cache.
Si votre application est de ce type, il est recommandé d'optimiser votre application
en utilisant les options de configuration oci8.max_persistent et oci8.persistent_timeout
(elles vous donnent le contrôle sur la taille et la durée de vie du cache
de connexions persistentes) ou utilisez
oci_connect
à la place.
Les fonctions
oci_connect
et
oci_pconnect
employent un cache de connexion ; si vous faites des appels multiples
à
oci_connect
, en utilisant les mêmes paramètres dans
un script donné, le second appel ainsi que les suivants retourneront le gestionnaire
de connexion existant. Le cache utilisé par la fonction
oci_connect
est nettoyé à la fin de l'exécution du script ou lorsque vous fermez explicitement
le gestionnaire de connexion.
oci_pconnect
a un comportement
sensiblement identique, à la différence que le cache est maintenu séparemment
et est conservé entre les requêtes.
Il est important de se souvenir de cette fonctionnalité de cache, car il donne
l'apparence que les deux gestionnaires ne sont pas isolés transactionnellement (ils
sont en faite le même gestionnaire de connexion, ils ne sont donc absolument pas
isolés). Si votre connexion a besoin de deux connexions séparées, isolées
transactionnellement, vous devez utiliser la fonction
oci_new_connect
.
oci_new_connect
crée toujours une nouvelle connexion au
serveur Oracle, indépendamment de l'existante d'autres connexions.
Les applications web à fort trafic doivent éviter d'utiliser
oci_new_connect
, particulièrement dans les sections
les plus chargées de l'application.
|