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

Accès aux données Discussion :

[ADO.NET][2.0] Comment se gère les pools de connection ?


Sujet :

Accès aux données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 147
    Points : 64
    Points
    64
    Par défaut [ADO.NET][2.0] Comment se gère les pools de connection ?
    Bonjour,

    ma question est toute simple je me demande comment on gere un pool de connection avec .net.
    Je sais que SQLServer possede son propre pool de connection donc pas besoin de le gérer. Mais pour les autres SGBD (Oracle, mysql voir access).

    Je me pause cette question car j'ai trouvé cette classe qui m'est bien pratique : http://www.bewise.fr/download/articles/CodeArticle31.zip

    C'est une classe d'acces generique quelque soit la database. Mais si je l'applique a autre chose que SQL Server, vais-je quand meme avoir la notion de pooling ?

    Merci par avance de vos réponses.

    B.

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Normalement, .NET se débrouille tout seul avec ce genre de chose...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 147
    Points : 64
    Points
    64
    Par défaut
    Et ce quelques soit le SGBD ?

  4. #4
    Membre extrêmement actif
    Avatar de ArHacKnIdE
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 947
    Détails du profil
    Informations personnelles :
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 947
    Points : 1 921
    Points
    1 921
    Par défaut
    Surement.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 147
    Points : 64
    Points
    64
    Par défaut
    Bon bah bonne nouvelle !!!

  6. #6
    Membre chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904
    Par défaut
    Tout est dans le namespace System.Data.ProviderBase (browsable par Reflector uniquement)

    Il fonctionne avec la base de toute connection a une base de donnees: DbConnection

    Cependant on peut agir sur le pooling par la connectionstring:
    - Si les connections dans le pool n'ont pas la meme connectionstring (a un espace pres!) et bien une nouvelle connection est creee dans le pool
    - On peut specifier des parametres dans cette connectionstring (duree de vie de la connection dans le pool etc)

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 147
    Points : 64
    Points
    64
    Par défaut
    Merci piotrek pour ces explications, par contre je ne comprend pas ce que tu veux dire par :"Si les connections dans le pool n'ont pas la meme connectionstring (a un espace pres!) et bien une nouvelle connection est creee dans le pool" :

  8. #8
    Membre chevronné
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Points : 1 904
    Points
    1 904
    Par défaut
    Le pool c'est un cache de connections, t'as l'impression de fermer une connection dans ton code, cependant cette connection existe toujours pendant un temps donne dans le pooling (jusqu'au timeout)
    La connection en cache attend d'etre utilisee

    Comment le systeme sait qu'il peut reutiliser telle ou telle connection en cache?

    Si dans ton code tu recree une connection, le pooling va verifier si la connection n'est pas par hasard encore en cache. Et la clef est la connectionstring, meme si la connection en cache est connectee a la meme base du meme serveur que la connection de ton code, il suffit que la connectionstring (chaine de caracteres) differe d'un unique caractere pour qu'il considere la connection de ton code comme differente, et donc ne reutilise pas la connection en cache, et donc cree une nouvelle connection en pool

    Commender le pooling se fait donc avec ET par la connectionstring

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 147
    Points : 64
    Points
    64
    Par défaut
    OK la tout est clair !!!

    C'est quand meme bcp plus simple qu'avec JAVA ou fallait soit le gerer soit faire confiance au server d'application

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [ADO.Net][C#]Comment se gère les bases de données ?
    Par Sion_Sempai dans le forum Accès aux données
    Réponses: 7
    Dernier message: 28/03/2006, 16h30
  2. [ADO.Net][C#/Mysql] Comment exécuter une requête paramétrée?
    Par wremacle dans le forum Accès aux données
    Réponses: 6
    Dernier message: 07/02/2006, 16h55
  3. [ADO.NET][C#/CSV]Comment acceder autres extensions que .txt?
    Par neptune dans le forum Accès aux données
    Réponses: 1
    Dernier message: 24/01/2006, 13h55
  4. [.NET][C#][WinForms]Comment récupérez-vous les dates?
    Par Floyd dans le forum Windows Forms
    Réponses: 5
    Dernier message: 02/11/2005, 16h16
  5. [ADO.Net][C#/Oracle] Comment utiliser une requête paramètrée ?
    Par kaboume dans le forum Accès aux données
    Réponses: 4
    Dernier message: 05/07/2005, 14h50

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