IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

MySQL - Fermeture/Destruction de connection incorrect


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Par défaut MySQL - Fermeture/Destruction de connection incorrect
    Bonjour,

    je realise une libraire pour gerer divers Serveur

    voici un apercu de mes classes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CatalogueConnexion
    Permet de gerer nos connexion
     
    Les connexions sont contenus dans un HashTable
     
    Des fonctions standard sont presente(ajout, suppression, fermeture)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Connexion
    Represente une connexion
     
    La connexion est de type IDbConnection (connection generique)
     
    Des fonctions standard sont presente(open, close, executerSQL)

    depuis un projet WindowsForm j'instanci un CatalogueConnexion et j'ajoute une connexion MySQL et l'ouvre avec l'utilisateur "uti_1"

    j'ouvre le GUI Administrateur de MySQL avec root et je vois bien 2 connection (root + uti_1)


    la tout est logique mais lorsque j'effectue
    le GUI Administrateur me dit que la connection est toujours active...

    je vais plus loins encore! je supprimer la connexion du catalogue et je dit que mon objet Connexion = null

    non rien a fair la connexion est toujours active....


    elle ne se detruit pas temps que je ne ferme pas l'application WindowsForm....


    j'avais deja remarquer se problème par le passer mais je ne m'était pas attarder(je me connecter puis deconnecter mais je pouvais toujours executer des requetes...)

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Ce ne serait pas à cause du pooling des connexions ? Si le pooling est activé, quand tu appelles Close, ça ne ferme pas immédiatement le lien avec la base... ça le rend seulement disponible pour être réutilisé par un nouvel objet Connection.
    Quel provider utilises-tu pour te connecter ? Odbc, OleDB, le provider MySQL natif ... ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Par défaut
    j'utilise le connecteur .NET MySQL 5.1 (celui fournis sur le site de MySQL)

    il faut donc que je precise pooling=false ??

    ya t-il se genre d'option a preciser sur d'autre type de connexion?? (sql serveur, access, oracle.....)

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    D'après la doc, tu peux préciser "Pooling=false" dans la chaîne de connexion. Mais je ne suis pas sûr que ce soit une bonne idée... l'ouverture d'une connexion est une opération relativement coûteuse, c'est pour ça que le pooling existe. Donc, à moins que tu aies une bonne raison de vouloir modifier ce comportement par défaut, je te conseille de ne pas y toucher

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Par défaut
    en fait je met en place des fonctions pour gérè des connections donc par la suite se seras juste un "true/false" a mettre a la creation


    c'est juste que pour moi quand je lui disais "Close" je penser pas quel resterais

    merci pour les infos

  6. #6
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Mai 2009
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2009
    Messages : 102
    Par défaut
    Salut,

    J'ai la même interrogation concernant la fermeture d'une connexion MySQL via une application C#.

    J'ai un code très basique ou je crée mon objet connexion, j'appelle la methode open(), puis je lance mes requêtes et finallement je voulais fermer proprement fermer la connexion MySQL avec la methode close() de l'objet connexion.
    Apparemment ça ne ferme pas la connexion. Le GUI d'administration tools m'indique que la connexion est toujours présente (en mode sleep)...

    J'ai meme essayé de mettre le code dans un block using (myConn = new MySQLConnection(...))
    {

    }

    Mais en vain...
    Bizarre que le système de pooling empêche de vouloir fermer "proprement" une connexion lorsqu'on le désire.

    J'utilise .Net 2.0, MySQL5.1, connecteur MySQL disponible sur leur site.

Discussions similaires

  1. Jboss MySQL impossible de se connecter
    Par naej56 dans le forum Wildfly/JBoss
    Réponses: 4
    Dernier message: 04/04/2008, 12h23
  2. [POO] Fermeture d'une connection SQL
    Par Anduriel dans le forum Langage
    Réponses: 2
    Dernier message: 27/08/2006, 18h17
  3. [ADO] Chaine de connection incorrecte
    Par freud dans le forum Bases de données
    Réponses: 2
    Dernier message: 26/04/2006, 20h55
  4. [Delphi 2006][Mysql 4.0.24] connection impossible
    Par vincentj dans le forum Bases de données
    Réponses: 2
    Dernier message: 07/03/2006, 16h05
  5. [jdbc][mysql][linux] pb de connection
    Par BainE dans le forum JDBC
    Réponses: 1
    Dernier message: 23/11/2004, 19h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo