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 :

ORA-01000: nombre maximum de curseurs ouverts dépassé


Sujet :

Accès aux données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juillet 2006
    Messages
    295
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 295
    Par défaut ORA-01000: nombre maximum de curseurs ouverts dépassé
    Bonjour j'ai un programme console qui communique avec oracle dans une fonction j'ai une boucle long qui permet de reécuperer les resultats à partir de la base de données.j'ai utilise DataSet qui sera récupérer par DataAdapter Mon probléme que le programme catché au milieu il me donne comme erreur ORA-01000: nombre maximum de curseurs ouverts dépassé

    j'ai déja chercher dans l'internet la solution de ce type de probleme.
    aprés la recherche chacun me recommande de libérer dataAdapter et dataset pour chaque itération je le fait mais ca marche pas svp mes amis aide moi c urgent

  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 : 44
    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
    Ca veut dire que tu as des DataReader qui sont restés ouverts
    Il faut toujours fermer les DataReader quand tu as fini de t'en servir, car chacun utilise un curseur Oracle, et comme tu as pu t'en rendre compte, il y a une limite au nombre de curseurs ouverts...

  3. #3
    Membre éclairé
    Inscrit en
    Juillet 2006
    Messages
    295
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 295
    Par défaut
    Oui merci ca marche mais ma question que j'utilise OracledataReader dans une fonction comme variable locale donc a la fin de la fonction l'objet sera libéreé automatiquement donc c koi la signification a chaque fois de liberer OracleDataReader ? j'espere d'avoir une explication technique sur la relation entre l'objet datareader et les curseurs de la base de données ?

  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 : 44
    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
    Citation Envoyé par ouadie99 Voir le message
    j'utilise OracledataReader dans une fonction comme variable locale donc a la fin de la fonction l'objet sera libéreé automatiquement donc c koi la signification a chaque fois de liberer OracleDataReader ?
    attention, tu confonds la libération des ressources managées (libérées automatiquement par le garbage collector quand un objet est sorti du scope) et la libération des ressources non-managées (handle de fenêtre, mémoire allouée par un DLL native, curseur Oracle...), qui sont libérées :
    - à la fin du programme
    - lors d'un appel explicite à Dispose

    Tu trouveras plus d'informations là-dessus dans la doc MSDN de l'interface IDisposable

  5. #5
    Membre émérite
    Inscrit en
    Octobre 2006
    Messages
    587
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Octobre 2006
    Messages : 587
    Par défaut
    Citation Envoyé par tomlev Voir le message
    - à la fin du programme
    - lors d'un appel explicite à Dispose
    Normalement si on défini l'objet à null et que l'on déclenche une collecte, les ressources sont aussi libérées (le finaliseur appelle la méthode virtuelle Dispose) ^^

  6. #6
    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 : 44
    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
    Citation Envoyé par harz62 Voir le message
    Normalement si on défini l'objet à null et que l'on déclenche une collecte, les ressources sont aussi libérées (le finaliseur appelle la méthode virtuelle Dispose) ^^
    Certes (et encore, c'est en supposant que le finaliseur ait été correctement implémenté)
    Mais à moins d'appeler explicitement GC.Collect (pas terrible pour les perfs...), il peut se passer beaucoup de temps entre le moment où ton objet n'est plus référencé et le moment où le GC le finalise...

  7. #7
    Membre éclairé
    Inscrit en
    Juillet 2006
    Messages
    295
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 295
    Par défaut
    Mecri bcp pour la réponse

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

Discussions similaires

  1. [Doctrine] ORA-0100 nombre maximum de curseurs ouverts dépassé :
    Par Tyra3l dans le forum ORM
    Réponses: 5
    Dernier message: 02/07/2011, 23h50
  2. ORA-01000: nombre maximum de curseurs ouverts dépassé
    Par opensource dans le forum Débuter
    Réponses: 3
    Dernier message: 20/04/2011, 14h30
  3. ORA-01000: Nombre maximum de curseurs ouverts atteint
    Par nihilist dans le forum Oracle
    Réponses: 2
    Dernier message: 18/08/2010, 13h08
  4. Réponses: 6
    Dernier message: 17/09/2007, 13h50
  5. Réponses: 4
    Dernier message: 10/07/2007, 16h43

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