2010-08-19 6 views
0

J'ai une application PHP qui utilise les fonctions ODBC pour l'accès à la base de données. Mon administrateur de base de données a récemment découvert que l'application ne ferme pas ses connexions à la base de données, ce qui entraîne de nombreuses connexions non valides dans un état TIME_WAIT.PHP ODBC ne pas fermer les connexions

Nous avons vérifié le code et je fais un appel odbc_close_all dans chaque script, et même si je ne l'étais pas, la connexion devrait se fermer à la fin du script. Il n'y a pas de scripts en cours d'exécution qui se tiennent sur leurs connexions

Quelqu'un a-t-il déjà vu quelque chose comme ça ou a-t-il une idée du problème?

version PHP est 5.1.4 Fonctionnant sur Windows Server 2003 R2 Service Pack 2 base de données MySQL

+0

Merci! Ça ira. – wshato

+0

Mieux vaut poser cette question sur serverfault.com. Nos chers collègues admins sont probablement mieux placés pour vous dire tout ce que vous devez savoir sur TIME_WAIT, SO_REUSEADDR, MaxUserPort et TcpTimedWaitDelay et comment modifier certains paramètres de Windows pour contourner le problème. Il n'y a probablement aucun problème avec votre script. TIME_WAIT indique que vous avez effectivement fermé la connexion, mais le système d'exploitation conserve l'adresse/le port pendant un certain temps en attente. Le regroupement de connexion n'est probablement pas ce que vous voulez, bien que _sort of_ possible: http://docs.php.net/manual/fr/function.odbc-pconnect – VolkerK

+0

Pourquoi utilisez-vous ODBC pour vous connecter à MySQL pour commencer? – Charles

Répondre

0

Après beaucoup de recherches, nous sommes tombés sur plusieurs sources qui ont indiqué que la question était TcpTimedWaitDelay (merci VolkerK pour la pointe) . Cela a aidé une bonne affaire, mais nous voyons toujours environ 30-40 connexions dans l'état TIME_WAIT à un moment donné. Nous nous demandons maintenant si quelqu'un a un avis sur la question de savoir si ce comportement est normal pour un serveur Windows et si c'est aussi bon que cela, ou s'il y a d'autres possibilités qui méritent d'être explorées.

Merci

Questions connexes