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

BIRT Discussion :

[2.2.1][Java/Struts] (Exception) OutOfMemoryError: PermGen space


Sujet :

BIRT

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 32
    Par défaut [2.2.1][Java/Struts] (Exception) OutOfMemoryError: PermGen space
    Bonjour, j'ai un petit probleme (gros en fait) avec BIRT. je l'ai intégré dans une appli web struts, et ca fonctionne tres bien. sauf que BIRT bouffe de la mémoire comme un ogre, et ne la libère pas. du coup le serveur fini par criser. hors de question d'augmenter l espace memoire de la JVM puisque cela ne résout pas le probleme mais le repousse. hors de question également de rebooter le serveur d'appli puisque l'appli est sensée etre utilisée par de nombreux utilisateurs...
    j'ai eu beau chercher sur les forums un peu partout, mais tjs pas de solution a ce OutOfMemoryError...
    si qqn avait une petite piste...

  2. #2
    BiM
    BiM est déconnecté
    Expert confirmé
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Par défaut
    Bonjour,

    Si tu as une version trop ancienne de BIRT et des tableaux imbriqué, ce problème est connu change de version.

    Dans le cas contraire, donne plus de RAM disponnible à Tomcat au démarrage (ou autre serveur) puisque le but est quand même de générer un PDF/XLS/HTML ou autre et c'est pas franchement toujours un fichier léger.

    Sinon, évite d'intégrer plein d'images a tes rapports ou alors fait en sorte de les limiter en données. (Répartition des données sur plusieurs rapports par exemple).

    Enfin, ca peut être un simple problème de conception ou même de codage de ton reportDesign qui ferait une boucle infinie ou une action bien trop lourde pour BIRT que tu pourrais aussi bien faire au préalable ou extérioriser.

  3. #3
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 32
    Par défaut
    Tout d'abord merci pour ta réponse.
    Parcontre je tiens à préciser que mon rapport est le plus simpliste qui soit et que ma version de BIRT est la derniere stable v2.2.1. le soucis c'est que BIRT ne libère pas la mémoire qu'il utilise, du coup je me retrouve avec 10mo d'occupés en plus a chaque génération de rapport. je précise que cela tourne sur un serveur tomcat5

  4. #4
    BiM
    BiM est déconnecté
    Expert confirmé
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Par défaut
    Y'a t'il possibilité que tu mettes le rapport en pièce jointe please ?

  5. #5
    Membre averti
    Inscrit en
    Avril 2005
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 32
    Par défaut
    Alors j'ai réussi à réduire l'appéti de BIRT (le probleme était que je démarrais le moteur BIRT à chaque appel de l action au lieu de l'initialiser a l aide d un plug-in struts). Toutefois le probème persiste, et BIRT continue de grapiller des octets sans les libérer... je joins mon reportDesign, voici le code de génération dans mon Action struts :

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    public ActionForward execute(ActionMapping mapping, ActionForm form,
        HttpServletRequest request, HttpServletResponse response) throws Exception {
     
        String objet = request.getParameter("objet");
     
        String reportName = "";
     
        if (objet.equals("commune")) {
          CommuneForm commune = (CommuneForm) form;
     
          WriteXml.writeCommune(commune);
     
          reportName = "commune.rptdesign";
        } 
     
        // get report name and launch the engine
        // response.setContentType("text/html");
        response.setContentType("application/pdf");
        response.setHeader("Content-Disposition", "inline; filename=test.pdf");
        // String reportName = request.getParameter("ReportName");
    //    String reportName = "test.rptdesign";
     
        ServletContext sc = request.getSession().getServletContext();
     
        birtReportEngine = BirtEngine.getBirtEngine(sc);
     
        // setup image directory
        HTMLRenderContext renderContext = new HTMLRenderContext();
        renderContext.setBaseImageURL(request.getContextPath() + "/images");
        renderContext.setImageDirectory(sc.getRealPath("/images"));
     
        logger.log(Level.FINE, "image directory "
          + sc.getRealPath("/WEB-INF/images"));
        System.out.println("stdout image directory "
          + sc.getRealPath("/WEB-INF/images"));
     
        HashMap contextMap = new HashMap();
        contextMap.put(EngineConstants.APPCONTEXT_HTML_RENDER_CONTEXT,
          renderContext);
     
        IReportRunnable design;
        try {
          // Open report design
          design =
            birtReportEngine.openReportDesign(sc.getRealPath("/WEB-INF/reports")
              + "/" + reportName);
     
     
          // create task to run and render report
          IRunAndRenderTask task = birtReportEngine.createRunAndRenderTask(design);
          task.setAppContext(contextMap);
     
          // set output options
          HTMLRenderOption options = new HTMLRenderOption();
          // options.setOutputFormat(HTMLRenderOption.OUTPUT_FORMAT_HTML);
          options.setOutputFormat(HTMLRenderOption.OUTPUT_FORMAT_PDF);
          options.setOutputStream(response.getOutputStream());
          task.setRenderOption(options);
     
          // run report
          task.run();
          task.close();
          birtReportEngine = null;
          renderContext = null;
          contextMap = null;
          design = null;
          task = null;
    //      WriteXml.deleteFile();
     
        } catch (Exception e) {
     
          e.printStackTrace();
          throw new ServletException(e);
        } 
     
        return null;
      }
    Au passage, si tu savais comment modifier des parametre dans mon rapport dans le code de mon action struts, par exemple le nom du fichier de données, je suis preneur.

    ps:désolé pour le silence radio pendant quelques jours
    Fichiers attachés Fichiers attachés

  6. #6
    BiM
    BiM est déconnecté
    Expert confirmé
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Par défaut
    Bonjour,

    Qu'appelles tu le nom du fichier de données ?

Discussions similaires

  1. [Exception] OutOfMemoryError: PermGen space
    Par n@n¤u dans le forum JOnAS
    Réponses: 16
    Dernier message: 15/11/2009, 10h23
  2. Réponses: 6
    Dernier message: 28/10/2009, 13h48
  3. java.lang.OutOfMemoryError: PermGen space
    Par john_wili dans le forum Tomcat et TomEE
    Réponses: 9
    Dernier message: 11/04/2009, 19h23
  4. Horrible Exception: java.lang.OutOfMemoryError: PermGen space
    Par liquideshark dans le forum Tomcat et TomEE
    Réponses: 8
    Dernier message: 06/01/2009, 10h54
  5. java.lang.OutOfMemoryError: PermGen space
    Par LGnord dans le forum Langage
    Réponses: 15
    Dernier message: 13/11/2007, 18h21

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