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

JDBC Java Discussion :

Error Request : null / ORA-01000: maximum open cursors exceeded


Sujet :

JDBC Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 16
    Points : 6
    Points
    6
    Par défaut Error Request : null / ORA-01000: maximum open cursors exceeded
    bonjour,

    lorsque je deploier mon application avec Tomcat 5.0.28
    j'ai ce message d'erreur dans la console d'eclipse :

    exception threadnull2007-11-28 15:42:57 ERROR [ConnectionFactory] Error Request : null / ORA-01000: maximum open cursors exceeded

    merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 352
    Points : 445
    Points
    445
    Par défaut
    Sur chaque instance Oracle tu as un paramètre spécifiant le nombre maximum de curseurs disponibles. Ces curseurs sont crées lors de l'utilisation de certains ordres SQL, mais aussi si tu utilises un Datasource avec un pool de connexion, lorsque tu spécifies un cache sur les PreparedStatements, tu as un curseur alloué par PreparedStatement.

    Essaye donc dans un premier temps de désactiver le cache sur les prepared statements, sinon vérifie la configuration Oracle

    Jacques Desmazières

  3. #3
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1

  4. #4
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par Jacques - 06 Voir le message
    Sur chaque instance Oracle tu as un paramètre spécifiant le nombre maximum de curseurs disponibles. Ces curseurs sont crées lors de l'utilisation de certains ordres SQL, mais aussi si tu utilises un Datasource avec un pool de connexion, lorsque tu spécifies un cache sur les PreparedStatements, tu as un curseur alloué par PreparedStatement.

    Essaye donc dans un premier temps de désactiver le cache sur les prepared statements, sinon vérifie la configuration Oracle


    Jacques Desmazières



    MERCI POUR VOTRE REPONSE.

    en fait, je n'utilise pas Dtasources avec pool de connection.
    j'utilise une classe de connection avec une seulconnection static et aussi statement static.

    est ce que tu peux me montrer :
    1-désactiver le cache les prepared statement
    2-comment verifier la configuration Oracle


    merci

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 352
    Points : 445
    Points
    445
    Par défaut
    Si tu n'utilises pas de pool de connexion tu ne dois pas avoir de cache sur le preparedStatement, donc au pire tu bloques 1 curseur pour ton PreparedStatement statique.

    Pour avoir plus d'infos sur les "open_cursors", va voir à l'url suivante, tu as un certain nombre de requêtes te permettant de suivre les curseurs ouverts par utilisateurs, ainsi que la valeur de configuration du paramètre open_cursors:
    Monitoring Open and Cached Cursors

    Sinon voilà les 2 requêtes qui me semblent les plus utiles:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    select sum(a.value) total_cur, avg(a.value) avg_cur, max(a.value) max_cur, 
    s.username, s.machine
    from v$sesstat a, v$statname b, v$session s 
    where a.statistic# = b.statistic#  and s.sid=a.sid
    and b.name = 'opened cursors current' 
    group by s.username, s.machine
    order by 1 desc;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    select max(a.value) as highest_open_cur, p.value as max_open_cur
    from v$sesstat a, v$statname b, v$parameter p
    where a.statistic# = b.statistic# 
    and b.name = 'opened cursors current'
    and p.name= 'open_cursors'
    group by p.value;
    Jacques Desmazières

  6. #6
    Futur Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 16
    Points : 6
    Points
    6
    Par défaut
    Merci pour votre réponse.

    je voudrais savoir comment bloquer un curseur pour mon statement static.

    j'ai bien exécuster les requetes ci-dessus.

    merci de votre réponse.

Discussions similaires

  1. [ ORACLE ][ STRUTS ] [ JAVA ] maximum open cursor
    Par LoulouFifi dans le forum Struts 1
    Réponses: 21
    Dernier message: 30/03/2011, 11h52
  2. ORA-01000: maximum open cursors exceeded
    Par amoula84 dans le forum Oracle
    Réponses: 5
    Dernier message: 01/06/2009, 20h09
  3. ORA-01000: maximum open cursors exceeded
    Par tro2blabla dans le forum VB.NET
    Réponses: 3
    Dernier message: 21/08/2008, 15h00
  4. ORA-01000: maximum open cursors exceeded
    Par tro2blabla dans le forum PL/SQL
    Réponses: 3
    Dernier message: 21/08/2008, 14h56
  5. ORA-01000 maximum cursor exceeded
    Par dd16 dans le forum Oracle
    Réponses: 5
    Dernier message: 12/12/2005, 13h40

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