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

Bases de données Delphi Discussion :

Oracle erreur ORA-01000


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 138
    Points : 89
    Points
    89
    Par défaut Oracle erreur ORA-01000
    Bonjour

    J'utilise une appli sous environnement citrix avec un oracle 9i sous Aix.

    J'accède à Oracle par ADO avec Delphi 7

    Au bout d'un moment d'utilisation, avec une 20aine d'utilisateur, j'obtiens une erreur ORA-1000 : nombre de cursor maximum atteint.

    Comment empecher cette erreur au niveau programmation (fermeture de query ? flush des curseurs non utilisas) et non en modifiant les parametres de la base Oracle (augmentation du nombre de curseur disponibles) ?

    Merci

  2. #2
    Membre à l'essai
    Inscrit en
    Décembre 2002
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 13
    Points : 12
    Points
    12
    Par défaut
    J'ai également eu ce problème. Il faut bien contrôler que tu refermes toutes tes query.

    Pour cela tu peux utiliser la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select count(1) from v$open_cursor;
    Et vérifier que toutes tes query ou table soient bien fermées.

  3. #3
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 138
    Points : 89
    Points
    89
    Par défaut
    Je reviens sur ce sujet car malgré les fermetures systématiques des query et tables, le problème persiste.

    Je travaille sous environnement Citrix sous windows 2003 server en SP1.

    Donc j'ai plusieurs instances de l'application qui tournent en parallèle.

    Est-ce sur qu'ADO libère bien les cursors à la destruction des Querys ?
    Comment vérifier ou forcer la libérer ation des curseurs inutilisés ?

    Merci pour toutes vos pistes possibles.

  4. #4
    Membre averti
    Profil pro
    xxxxxxxxxxx
    Inscrit en
    Juin 2004
    Messages
    308
    Détails du profil
    Informations personnelles :
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : xxxxxxxxxxx

    Informations forums :
    Inscription : Juin 2004
    Messages : 308
    Points : 407
    Points
    407
    Par défaut
    Les TADOQuerys sont-ils reliés à un TADOConnection ?

    Les TADOConnection sont-ils également fermés ?

    Il se peut également qu'ADO constitue un "pool" de connexions, et donc ne ferme pas immédiatement un tuyau de communication avec le SGBD, dans l'espoir de pouvoir le réutiliser sans renégocier de connexion.

    Le paramètre max_cursors de l'instance est-il vraiment suffisamment grand, par rapport au nombre de curseurs ouverts par l'appli ?

  5. #5
    Membre régulier
    Inscrit en
    Février 2003
    Messages
    138
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 138
    Points : 89
    Points
    89
    Par défaut
    Les ADOQuerys sont reliés à 1 seul ADOConnection.

    Effectivement, il n'est pas fermé explicitement au destroy du DataModule.

    J'essaye ca car le max_cursors d'ORacle a déjà été augmenté à 600, ce qui commence à faire bcp.

    Merci pour l'aide

  6. #6
    Nouveau membre du Club
    Inscrit en
    Septembre 2004
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 36
    Points : 29
    Points
    29
    Par défaut probléme de curseur delphi sous oracle
    salut les amis
    j'ai eu le méme probléme,
    au niveau de votre fichier init.ora de votre base de données ajouter la commande suivante:

    open_cursors= 400000 ou bien 300000 (enfin.. un nombre sufisant)
    normalement ca marche à mérveille,

    par contre , dite moi comment vous faite le rafraichissments de votre bdd en temp reel, (je travaille avec delphi6 sous oracle8i via ado)
    c à dire comment les modifications d'un user1 paraissent en temp reel au user2(vous me serais d'une grande utilité) merci d'avance

Discussions similaires

  1. Problème oracle - erreur ORA-00022
    Par mika0102 dans le forum Oracle
    Réponses: 3
    Dernier message: 01/12/2009, 11h06
  2. problème sur oracle: erreur ora-01403
    Par kkest dans le forum Forms
    Réponses: 1
    Dernier message: 09/11/2007, 14h05
  3. [Oracle] Erreur ORA-12154 et ORA-12545
    Par Pakkaï dans le forum SQL
    Réponses: 14
    Dernier message: 14/09/2006, 18h08
  4. [oracle] erreur ora-12500
    Par youse dans le forum Oracle
    Réponses: 7
    Dernier message: 24/04/2006, 18h29
  5. [sgbd] [DBD::Oracle] erreur ORA-03120
    Par dychentrus dans le forum SGBD
    Réponses: 1
    Dernier message: 13/04/2005, 18h31

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