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 :

OutOfMemory prevenant de MysSql


Sujet :

JDBC Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 42
    Par défaut OutOfMemory prevenant de MysSql
    Bonjour,

    J'espère que je suis dans la bonne section...

    Je suis en train de déployer une application J2EE (Tomcat - Hibernate - MySql)
    mais j' obtient l'erreur suivante

    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
    28
    29
    30
    31
    32
    33
    34
     
    java.lang.OutOfMemoryError: Java heap space
    	com.mysql.jdbc.MysqlIO.nextRowFast(MysqlIO.java:1632)
    	com.mysql.jdbc.MysqlIO.nextRow(MysqlIO.java:1409)
    	com.mysql.jdbc.MysqlIO.readSingleRowSet(MysqlIO.java:2883)
    	com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java:476)
    	com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:2576)
    	com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:1757)
    	com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2167)
    	com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2648)
    	com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2077)
    	com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2228)
    	org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
    	org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
    	org.hibernate.loader.Loader.doQuery(Loader.java:674)
    	org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
    	org.hibernate.loader.Loader.loadEntity(Loader.java:1860)
    	org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:48)
    	org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:42)
    	org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3049)
    	org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:399)
    	org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:375)
    	org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:139)
    	org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:195)
    	org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:103)
    	org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878)
    	org.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:846)
    	org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:557)
    	org.hibernate.type.EntityType.resolve(EntityType.java:379)
    	org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:120)
    	org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:854)
    	org.hibernate.loader.Loader.doQuery(Loader.java:729)
    	org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
    	org.hibernate.loader.Loader.doList(Loader.java:2213)
    à l'origine j'ai l'impression que cela provient de MySql ...

    Merci pour ceux qui se pencheront sur mon probléme

  2. #2
    Membre éprouvé Avatar de anisj1m
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 067
    Par défaut
    mémoire insuffisante

  3. #3
    Membre émérite Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Par défaut
    Ta requête doit renvoyer trop de lignes.
    Comme le résultat d'une requête est stocké en mémoire, ton serveur sature.

    Comme solution ben... la je voit pas, il y a peut-être des solutions pour découper le retour d'une requête en plusieurs petites parties?

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 42
    Par défaut
    Citation Envoyé par anisj1m Voir le message
    mémoire insuffisante
    J'ai augmenter la heapSize : -Xms512m -Xmx512m

    Et maintenant c'est lent comme pas possible ...

  5. #5
    Membre émérite Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Par défaut
    Ben en même temps si tu manie un résultat de requête aussi énorme qu'à lui seul il sature ta mémoire, il est normal que le manier soit long et compliqué!
    Tu ferais peut-être mieux d'envisager diverses optimisations...

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 42
    Par défaut
    Ben a vrai dire j'ai +- 30 records, j'ai l'impression que c'est hibernate qui merde ...

  7. #7
    Membre émérite Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Par défaut
    Ah oui c'est plus gênant...
    Tu as essayé de mettre hibernate en verbose pour voir exactement quelles requêtes sont exécutées?
    S'il y a des liens de ta table vers une autre table plus grosse, en fonction des associations hibernate peut se mettre à requêter aussi l'autre table énorme.
    Si tu as des associations de ce genre, il faut les mettre en "lazy" dans le fichier .hbm pour éviter qu'il load toute la base à chaque fois.

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

Discussions similaires

  1. OutofMemory heap java
    Par max25b dans le forum Langage
    Réponses: 14
    Dernier message: 09/05/2006, 13h31
  2. Problème OutOfMemory dans une applet
    Par hotkebab99 dans le forum Applets
    Réponses: 1
    Dernier message: 25/01/2006, 10h36
  3. [OutOfMemory] probleme de delestage
    Par pierre.zelb dans le forum Général Java
    Réponses: 14
    Dernier message: 06/07/2005, 13h05
  4. [JVM] OutOfMemory
    Par datalifeplus dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 19/08/2004, 00h43
  5. [OutOfMemory]Configuration mémoire
    Par thebubble dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 17/02/2004, 15h27

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