Délai d'attente de connexion de Connexion et de durée de Vie
Quel est l'avantage et l'inconvénient de connexion timeout=0?
Et qu'est-ce que l'utilisation de Connexion durée de Vie=0?
e.g
(Database=TestDB;
port=3306;
Uid=usernameID;
Pwd=myPassword;
Server=192.168.10.1;
Pooling=false;
Connection Lifetime=0;
Connection Timeout=0)
et qu'est-ce que l'utilisation de Regroupement de Connexion?
OriginalL'auteur Mark | 2010-05-01
Vous devez vous connecter pour publier un commentaire.
Le délai est de combien de temps vous attendez une réponse d'une demande avant de vous abandonner. TimeOut=0 signifie que vous devrez garder en attente pour la connexion à jamais. Bon je suppose que si vous vous connectez à un serveur lent qu'il est normal si il faut 12 heures pour vous répondre :-). Généralement une mauvaise chose. Vous voulez mettre une sorte de délai raisonnable à une demande, de sorte que vous pouvez réaliser votre cible est en bas et de passer avec votre vie.
De connexion durée de Vie = combien de temps une connexion de vie avant qu'il soit tué et recréé. Une durée de vie de 0 signifie ne jamais tuer et de le recréer. Normalement pas une mauvaise chose, parce que de tuer et de recréer une connexion est lente. Par le biais de divers bugs de vos connexions peuvent se coincer dans un état instable (comme lorsque vous traitez avec bizarre 3 transactions).. mais 99% du temps, il est bon de garder une connexion d'une durée de vie infinie.
Le regroupement de connexion est un moyen de composer avec le fait que la création d'une connexion est très lente. Donc, plutôt que de créer une nouvelle connexion pour chaque demande, au contraire, une piscine, disons, 10, premade connexions. Quand vous en avez besoin, vous en emprunter un, l'utiliser, et retour. Vous pouvez ajuster la taille de la piscine pour modifier la façon dont votre application se comporte. Plus de la piscine = plus de connexions = plus de fils à faire des trucs à la fois, mais cela pourrait également submerger ce que vous faites.
En résumé:
ConnectionTimeout=0 est mauvais, il font quelque chose de raisonnable comme 30 secondes.
ConnectionLifetime=0 est correct
ConnectionPooling=désactivé est mauvais, vous aurez probablement envie de l'utiliser.
Votre serveur ne répond pas. Peut-être, n'a pas pu être ouvert sur le port de droite, pourrait être un pare-feu, etc. Besoin de plus de détails
J'aime le plus prolixe desc de ConnectionLifetime alors documentation de mysql.
OriginalL'auteur bwawok
Je sais que c'est un vieux thread mais je pense qu'il est important de souligner une instance dans laquelle vous souhaiterez peut-être désactiver le Regroupement de Connexion ou de l'utilisation de la Connexion à Vie.
Dans certains environnements (en particulier lors de l'utilisation d'Oracle, ou au moins dans mon expérience) de l'application web est conçu de sorte qu'il se connecte à la base de données en utilisant les identifiants de l'utilisateur par rapport à un fixe chaîne de connexion situé dans le fichier de configuration du serveur. Dans ce cas, permettant le regroupement de connexions que le serveur pour créer un pool de connexion pour chaque utilisateur accédant au site web (Voir La Fragmentation De La Piscine). Selon le scénario de ce pourrait être soit bon ou mauvais.
Cependant, le regroupement de connexion devient un problème lorsque le serveur de base de données est configuré pour tuer les connexions de base de données qui dépassent le temps d'inactivité maximum en raison du fait que le serveur de base de données pourrait tuer les connexions qui peut encore résider dans le pool de connexion. Dans ce scénario, le de Connexion durée de Vie peut être utile de jeter ces connexions depuis qu'ils ont été fermés par le serveur de toute façon.
OriginalL'auteur Ulises