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 :

perte de connexion à la BDD ORACLE


Sujet :

Accès aux données

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 142
    Points : 73
    Points
    73
    Par défaut perte de connexion à la BDD ORACLE
    Bonjour tout le monde,

    Mon projet actuel travaille sur une BDD Oracle. Dans une partie de ce projet, je fais appel au WebService pour alimenter la base.

    une logique est maintenue :

    - une connexion BDD par session utilisateur.
    - une seule connexion BDD, partagée par toutes les sessions utilisateurs, sera utilisée par le WebService.

    Mon souci est le suivant :

    Lorsque la connexion au serveur oracle se réinitialise , le WebService pert accès (connexion) à la BDD ( ce qui est logique jusque là) et j'ai l'exception suivante :

    ORA-03114: pas connecté à ORACLE
    Pour pallier à ceci, J'ai rajouté un test qui verifie si la connexion est toujours établie à la BDD. ce test est implémenté dans une classe utilisée par mon WebService. voici mon bout de code :

    if(connection.State !=System.Data.ConnectionState.Open)
    connection.Open();
    ...
    le problème c'est que lorsque le serveur Oracle crash, l'objet manipulant la BDD (connexion, interogation, déconnexion..) ne détecte pas ceci et garde les données de la connexion qui venait de chuter (ce qui est logique aussi).

    mais ceci me pose problème Comment pourrai-je résoudre ? y' aurait-il un moyen pour maintenir mon objet "A jour" sur l'état de ma connexion à la BDD ?

    Merci pour toutes vos suggestions. Je vous serai vraiment reconnaissante.

    Bon chance et courage à tout le monde.

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Tu dois aussi savoir que l'utilisation recommandée en .NET des connexions BDD est de l'ouvrir le plus tard possible et de la fermer le plus tôt possible. En interne le framework utilise un pool de connexions qui sont réutilisées autant que possible avant d'être 'rafraichies'.
    Utiliser une approche de ce type, peut sans doute aider à résoudre ton problème.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 142
    Points : 73
    Points
    73
    Par défaut
    salut SaumonAgile, je te remercie pour ta réponse rapide. sinon est que le fait d'ouvrir et de fermer la connexion à chaque interogation de la BDD n'influencera t-il pas la performance de mon application ? c'était pour cette raison que j'ai adopté cette solution. sinon j'essaie de mon coté de creuser la dedans.

    Merci mille fois.

  4. #4
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Citation Envoyé par loukili81
    salut SaumonAgile, je te remercie pour ta réponse rapide. sinon est que le fait d'ouvrir et de fermer la connexion à chaque interogation de la BDD n'influencera t-il pas la performance de mon application ? c'était pour cette raison que j'ai adopté cette solution. sinon j'essaie de mon coté de creuser la dedans.

    Merci mille fois.
    Non car le framework utilise un pool de connexions en interne. Concrètement cela signifie que :
    - Quand tu ouvres une connexion, il pioche une connexion dans son pool.
    - Quand tu fermes la connexion, il la remet dans le pool sans forcément la fermer réellement et permettre de la réutiliser rapidement sans faire vraiment de fermeture/ouverture à chaque fois.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  5. #5
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 142
    Points : 73
    Points
    73
    Par défaut
    ok je vois. je vais voir si ça résout mon problème. surtout va falloir convaincre l'équipe avec laquelle je travaille .on me pose la question suivante :
    est ce que ceci reste valable quand la connexion est ouverte par le WebService.
    moi je pense que c'est "oui" puisqu'on utilise le même principe (chaine de connexion) mais apparemment on aimerait bien avoir une confirmation d'ailleur

    Merci pour TOUT.

  6. #6
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Oui cela reste valable car c'est aussi le framework qui gère les connexions sur le serveur hébergeant le service web. Evidemment, il faut tout de même bien appeler les méthodes Open et Close sur les connexions utilisées même si en interne ce n'est pas forcément une ouverture et une fermeture physique de la connexion qui est effectuée par le framework.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  7. #7
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    142
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 142
    Points : 73
    Points
    73
    Par défaut
    Merci bcp SaumonAgile pour ton aide et pour les infos. Bonne continuation à toi.

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

Discussions similaires

  1. connexion à une BDD Oracle via powershell sous Windows R2 2008
    Par phinestra dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 04/12/2012, 16h47
  2. Pb de connexion à une bdd Oracle 9i sous linux depuis un client
    Par supertanguy dans le forum Connexions aux bases de données
    Réponses: 2
    Dernier message: 01/02/2008, 15h05
  3. Connexion à une BdD Oracle distante
    Par bobobobo01 dans le forum Connexions aux bases de données
    Réponses: 2
    Dernier message: 03/07/2007, 09h18
  4. [WinDev] Connexion à une BDD Oracle via ODBC
    Par Morgoth777 dans le forum WinDev
    Réponses: 2
    Dernier message: 01/12/2006, 14h34
  5. Connexion à une bdd Oracle
    Par Mayhem dans le forum Struts 1
    Réponses: 3
    Dernier message: 11/08/2006, 14h33

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