Est-ce qu'une connexion MySQL a un timeout ?

Est-ce qu'une connexion MySQL a un timeout ? - SQL/NoSQL - Programmation

Marsh Posté le 03-04-2008 à 14:45:18    

J'ai un serveur avec :
- un serveur web + une base MySQL qui tournent en local
- un logiciel développé en VB qui utilise la base MySQL
 
J'ai développé un logiciel en Visual Basic 6 qui utilise la base MySQL pour faire défiler des annonces en boucle infinie dans une fenêtre.
Le logiciel tourne 24h/24, j'initialise une connexion à la base au lancement du logiciel et la connexion est fermée si on ferme le logiciel.
Tout marche bien mais au bout d'un certain temps (quelques heures), le logiciel se fige et n'arrive plus a défiler les annonces.
 
Alors je me demandais si la on pouvait garder une connexion MySQL ouverte pendant des jours sans que ça pose problème ?

Reply

Marsh Posté le 03-04-2008 à 14:45:18   

Reply

Marsh Posté le 03-04-2008 à 15:40:15    

AMHA le problème n'est pas lié à la connexion avec mySql, mais plus à ce traitement infini exécuté en VB6. Il n'y aurait pas de fuite mémoire par hasard ?


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 03-04-2008 à 17:20:46    

kao98 a écrit :

AMHA le problème n'est pas lié à la connexion avec mySql, mais plus à ce traitement infini exécuté en VB6. Il n'y aurait pas de fuite mémoire par hasard ?


 
oui c'est possible car après l'avoir longtemps laisser tourner, j'ai eu un message d'erreur "mémoire insuffisante"
Tu sais ce qu'on peut faire pour y remédier ?

Reply

Marsh Posté le 04-04-2008 à 20:36:05    

Rechercher partout dans le code là où tu instancies des objets sans jamais les détruire.
 
"Set monObj = Nothing"
 
Quand t'en a plus besoin.

Reply

Marsh Posté le 04-04-2008 à 20:39:11    

Ceci dit, deux choses :
 
1/ En VBA, un problème de connexion à Oracle produit généralement un "mémoire insuffisante" (j'imagine que c'est une erreur générique quand une routine externe à VB n'arrive pas à créer un objet demandé par VB, et qu'elle ne dit pas pourquoi)
2/ Et oui, une connexion peut être perdue, soit à cause d'un timeout côté serveur, client, coupure réseau, mais aussi tout un tas de raisons possible. ADODB permet de faire automatiquement, et de façon transparante, du pooling de connexions. Donc systématiquement fermer les connexions quand on a terminé un traîtement, et la réouvrir lorsqu'on en a de nouveau besoin. Ceci permet de ganger en performances (sisi) et d'éviter les problèmes de perte de connexion.

Reply

Marsh Posté le 04-04-2008 à 23:36:45    

Et, d'après ce que tu dis bab, tu "fais défiler des annonces". Tu as un contrôle, je suppose, qui affiche les annonces, genre un label, ou un textbox, que tu remplis au fur et à mesure !
Tu le vides de temps en temps ce contrôle ? Tu limites la quantité de données qu'il affiche ?


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 06-04-2008 à 12:50:06    

ça me rappelle qqch. j'oubliais de faire un close de la connection... résultat inaccessible au bout de quelques heures... (max conn = 1500 je crois)


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 06-04-2008 à 20:03:03    

Forcément, si tu ouvres des connexions à chaque appel et que tu les ferme jamais... :D


Message édité par MagicBuzz le 06-04-2008 à 20:03:15
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed