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

Développement Web en Java Discussion :

Erreur "Caused by: java.lang.OutOfMemoryError: Java heap space"


Sujet :

Développement Web en Java

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2015
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 87
    Points : 117
    Points
    117
    Par défaut Erreur "Caused by: java.lang.OutOfMemoryError: Java heap space"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Caused by: java.lang.OutOfMemoryError: Java heap space
    j'ai une table de 219121 lignes . quand je veux afficher le contenu de cette table le serveur tourne tourne et aprés me donne cette erreur
    quelqu'un à une solution pour résoudre ça ?

    serveur : Jboss
    IDE : Eclipse

    cordialement.

  2. #2
    Membre chevronné
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Points : 1 993
    Points
    1 993
    Par défaut
    Trop de données montées en mémoire :
    - Soit tu augmentes les paramètres de la mémoire de ta JVM
    - Soit tu modifies ton code pour limiter la création d'objets et/ou mettre en place un système de pagination

    Entre nous, afficher une table de 219121 lignes, de base il y a un problème... Juste d'avoir envie de le faire. Le moindre outil/navigateur va suer et ramer tout ce qu'il peut pour gérer tout ça.

  3. #3
    Membre expérimenté Avatar de Nico02
    Homme Profil pro
    Developpeur Java/JEE
    Inscrit en
    Février 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Developpeur Java/JEE
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 728
    Points : 1 622
    Points
    1 622
    Par défaut
    Oui, éviter de tout charger d'un coup.

    Tu fais une table qui affiche mettons les 50-70 premières lignes, et tu fais de la pagination.

    Cdt.

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2015
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 87
    Points : 117
    Points
    117
    Par défaut
    c'est ce que je fait déjà mais ça ne résout pas le problème malheureusement

  5. #5
    Membre chevronné
    Avatar de eulbobo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2003
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2003
    Messages : 786
    Points : 1 993
    Points
    1 993
    Par défaut
    Citation Envoyé par monta_amri Voir le message
    c'est ce que je fait déjà mais ça ne résout pas le problème malheureusement
    Quelle est ta source de données que tu essayes d'afficher/paginer? Comment est-ce que tu la récupères? Comment est-ce que tu la pagines?

  6. #6
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Points : 4 792
    Points
    4 792
    Par défaut
    Tu as absolument besoin de ces 219121 lignes pour les consulter à l'écran ?

  7. #7
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2015
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 87
    Points : 117
    Points
    117
    Par défaut
    tout d'abord c'est mon fichier eclipse.ini

    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
     
    -startup
    plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
    --launcher.library
    plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.200.v20130521-0416
    -product
    org.eclipse.epp.package.jee.product
    --launcher.defaultAction
    openFile
    --launcher.XXMaxPermSize
    1024m
    -showsplash
    org.eclipse.platform
    --launcher.XXMaxPermSize
    1024m
    --launcher.defaultAction
    openFile
    --launcher.appendVmargs
    -vmargs
    -Dosgi.requiredJavaVersion=1.6
    -Xms512m
    -Xmx1024m
    j'utilise hibernate et j'ai créer une page jsp et ma base est sur wampserver (apache mysql)

    j'ai mapper tout les table avec jpa

  8. #8
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2015
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 87
    Points : 117
    Points
    117
    Par défaut
    Citation Envoyé par Népomucène Voir le message
    Tu as absolument besoin de ces 219121 lignes pour les consulter à l'écran ?
    malheureusement oui

  9. #9
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Points : 4 792
    Points
    4 792
    Par défaut
    En imaginant que tu affiches 50 lignes par page, tu ne peux pas plutôt faire un appel à la base à chaque page ?

    Par exemple, tu es à la page 30, cela veut dire que tu appelles 50 enregistrements au delà des (30 * 50) premiers
    Avec MySql ça donne :

    SELECT * FROM MaTable LIMIT 50 OFFSET 1500

    Du coup, c'est MySql qui se charge de n'envoyer qu'un paquet de 50 !
    En plus c'est le travail de la base de données de sélectionner uniquement ce dont on a besoin.

  10. #10
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2015
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 87
    Points : 117
    Points
    117
    Par défaut
    je vais essayé

  11. #11
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2015
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 87
    Points : 117
    Points
    117
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Query query = entityManager.createQuery ("select  e from Softwares e LIMIT 50 OFFSET 219121") ;
    return query.getResultList();
    je travail avec les requêtes JPQL . c'est la même chose ??

  12. #12
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Points : 4 792
    Points
    4 792
    Par défaut
    Tu ne peux pas mettre OFFSET 219121 car cela passera toutes les lignes de ta table.
    Essaye avec 1500 pour avoir la 31ème page
    1500 = 50 enregistrements * 30 pages écran


    Par ailleurs, il faut que tu passes du SQL Natif :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    
    Query query = entityManager.createNativeQuery("select  * from Softwares LIMIT 50 OFFSET 1500 ") ;

  13. #13
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2015
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2015
    Messages : 87
    Points : 117
    Points
    117
    Par défaut
    ok . merci bien

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

Discussions similaires

  1. Erreur "java.lang.OutOfMemoryError: Java heap space"
    Par Mysticaddict dans le forum Java EE
    Réponses: 3
    Dernier message: 14/08/2013, 12h04
  2. Erreur "java.lang.outofmemoryerror java heap space"
    Par iliass001 dans le forum Général Java
    Réponses: 10
    Dernier message: 18/02/2013, 15h22
  3. Erreur "java.lang.OutOfMemoryError: Java heap space"
    Par djanahana dans le forum Langage
    Réponses: 5
    Dernier message: 05/06/2012, 14h40
  4. Réponses: 3
    Dernier message: 04/12/2007, 22h32
  5. Eclipse erreur : java.lang.OutOfMemoryError: Java heap space
    Par sderecourt dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 14/04/2006, 11h28

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