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

Administration Oracle Discussion :

[Oracle10g Spatial] Problème : Trop de curseurs ouverts


Sujet :

Administration Oracle

  1. #1
    Membre habitué Avatar de NeraOne
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 218
    Points : 128
    Points
    128
    Par défaut [Oracle10g Spatial] Problème : Trop de curseurs ouverts
    Bonjour à toutes et à tous !
    Via un programme C#, j'exécute une requête spatial sur Oracle qui ne renvoit qu'un seule enregistrement (ou 0) puisque elle utilise la fonction SDO_NN.
    Cette requête à pour but, à partir de la longitude/latitude d'un point GPS, de trouver la rue la plus proche dans un rayon de 20 mètres :
    La requete est comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    select 
    CLETRONC, LONGUEUR 
    from RUES 
    where SDO_NN(
       GEOM, 
       MDSYS.SDO_GEOMETRY(
          2001, 
          41014, 
          MDSYS.SDO_POINT_TYPE(
              :latitude, 
              :longitude, 
              null), 
          null, 
          null), 
       'SDO_NUM_RES = 1') = 'TRUE' 
    and SDO_GEOM.SDO_DISTANCE(
       GEOM, 
       MDSYS.SDO_GEOMETRY(
          2001, 
          41014, 
             MDSYS.SDO_POINT_TYPE(
             :latitude2, 
             :longitude2, 
             null), 
          null, 
          null), 
       0.001) < 20
    La requête est paramétrée et donc j'initialise tous les paramètres (en fait les latitude/longitude des points). Elle est exécuté en boucle (en fait pour chaque point GPS - environ 11000) et il arrive un moment ou elle lève une exception : ORA-01000: maximum open cursors exceeded
    Il me semble que le nombre de curseurs peut être dépassé quand on a une infinité de résultats... la j'en ai 0 ou 1... Oracle n'a pas l'air de les fermer puisque, c'est le fait de tourner en boucle qui fait ça ! Je ne comprends pas trop car j'utilise cette requête depuis un bon bout de temps et c'est la première fois que je rencontre ce soucis !
    Si vous avez une idée ou une suggestion... Merci
    @+
    Antoine
    "Je ne suis pas d'accord avec ce que vous dites, mais je me battrai jusqu'à la mort pour que vous ayez le droit de le dire." Voltaire

  2. #2
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Points : 1 197
    Points
    1 197
    Par défaut
    Salut,
    J'ai trouvé cet article, peut être il peut t'aider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    Error:  ORA-01000 maximum open cursors exceeded
    Article ID: 23786 
    Software:  ArcSDE 8.2 
    Platforms: N/A 
     
    Error Message
    After using ArcMap to pan, zoom and redraw for some time on a layer that 
    has been defined using Oracle Spatial, ArcMap may return the error: 
     
    ORA-01000 maximum open cursors exceeded
     
     
    Cause
    The Oracle initialization parameter OPEN_CURSORS determines the maximum 
    number of cursors per user, and this has been exceeded. 
     
    There is a known issue where, if the Oracle Spatial layer has an SRID defined, 
    ArcSDE does not release the cursor on a query to determine the SRID of the layer.
     
     
    Solution or Workaround
    If this error occurs often, shut down Oracle, increase the value of OPEN_CURSORS, and restart Oracle. 
     
    This has been resolved for in ArcSDE 8.3.

  3. #3
    Membre habitué Avatar de NeraOne
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 218
    Points : 128
    Points
    128
    Par défaut
    Oui c'est vrai que je peux augmenter le nombre de curseurs dans init.ora ! Mais d'une part, je ne comprend pas pourquoi cela arrive... et d'autre part ce n'est que repousser le problème, le jour ou le volume de données augmente, il faudrat encore augmenter cette valeur... Déjà qu'Oracle à tendance à être long, si en plus on lui autorise ce genre de truc... je reste séptique !
    Merci quand même, en attendant, je fais comme ça !
    @+
    Antoine
    "Je ne suis pas d'accord avec ce que vous dites, mais je me battrai jusqu'à la mort pour que vous ayez le droit de le dire." Voltaire

  4. #4
    Membre habitué Avatar de NeraOne
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 218
    Points : 128
    Points
    128
    Par défaut
    En gros ma question c'est quelles sont les solutions pour contrer le fait qu'il y ai trop de curseurs d'ouverts ?
    "Je ne suis pas d'accord avec ce que vous dites, mais je me battrai jusqu'à la mort pour que vous ayez le droit de le dire." Voltaire

  5. #5
    Membre averti Avatar de Wurlitzer
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 469
    Points : 408
    Points
    408
    Par défaut
    Citation Envoyé par salim11
    Salut,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    This has been resolved for in ArcSDE 8.3.
    Il faut installer la version sans bug

  6. #6
    Membre éclairé

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2003
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 701
    Points : 741
    Points
    741
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Votre souci est-il lié à l' application ArcSde de la sociéré ESRI ?

    Cdlt

  7. #7
    Membre habitué Avatar de NeraOne
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 218
    Points : 128
    Points
    128
    Par défaut
    Merci pour vos réponses !
    ducho : non non pas du tout, mon problème n'est pas lié à cela.
    Dans un programme C#, j'exécute en boucle une requête OracleSpatial et quand je suis arriver à la valeur de open_cursor (dans init.ora), il me dit qu'il y a trop de curseurs ouverts. Moi je voudrais juste me débarrasser de ces curseurs ou alors pouvoir les effacer réguliérement !
    Merci
    Antoine
    "Je ne suis pas d'accord avec ce que vous dites, mais je me battrai jusqu'à la mort pour que vous ayez le droit de le dire." Voltaire

  8. #8
    Membre habitué Avatar de NeraOne
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2007
    Messages
    218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 218
    Points : 128
    Points
    128
    Par défaut
    Ca y est j'ai compris, c'était tout bête, j'avais ommis de fermer mon OracleDataReader une fois la lecture terminée.
    Il ne faut pas oublir :
    monDataReader.Close();
    monDataReader.Dispose();
    Merci à vous tous !
    @+
    Antoine
    "Je ne suis pas d'accord avec ce que vous dites, mais je me battrai jusqu'à la mort pour que vous ayez le droit de le dire." Voltaire

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

Discussions similaires

  1. problème de curseur ouvert !
    Par aoitife dans le forum PL/SQL
    Réponses: 13
    Dernier message: 06/02/2009, 18h17
  2. Problème ! Nombre de curseurs ouverts dépassé
    Par hbellahc dans le forum JDBC
    Réponses: 10
    Dernier message: 30/08/2007, 12h33
  3. [RESULTSET]ORA-001000 trop de curseurs ouverts
    Par elitost dans le forum JDBC
    Réponses: 7
    Dernier message: 30/06/2005, 13h54
  4. Problème: trop de tables ouvertes
    Par DrSlump dans le forum Bases de données
    Réponses: 5
    Dernier message: 05/06/2005, 20h01
  5. [débutant] problème avec le curseur (sablier)
    Par bat dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 01/12/2004, 08h26

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