cocoon-users-fr mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jmc.artig...@free.fr
Subject Re: Comment catcher l'erreur 'OutOfMemory' (Java Heap Space) proprement ?
Date Tue, 23 Jan 2007 07:03:49 GMT
Merci Mathieu et Bertrand,

Et merci a tous ceux qui ont pris le temps de me lire.

N'utilisant pas Apache ni Tomcat avec Cocoon, je pense que je vais 'blinder' le
formulaire en amont de la requete en base pour limiter le nombre de donnees
retournees. Et donc eviter ou limiter la creation de l'erreur 'OutOfMemory'. Je
perds un peu en ergonomie d'utilisation, mais je gagne en fiabilite.

Bonne continuation avec cocoon.
Cordialement,
Jean-Michel

Selon Mathieu Grimault <mathieu.grimault@univ-nantes.fr>:

> jmc.artignan@free.fr a écrit :
> > Merci Bertrand pour ta reponse rapide.
> >
> > Je suis d'accord avec toi pour dire qu'il vaut mieux eviter d'arriver a une
> > erreur 'OutOfMemory', et tout est bien fait dans mon appli (au mieux de mes
> > connaissances en tout cas) pour eviter d'y arriver.
> >
> > Cependant le cas arrive, rarement mais il est possible. En fait, je ne fais
> > aucune action precise lorsque je 'catche' l'erreur 'OutOfMemory'. Je
> n'essaie
> > pas de rentrer dans un autre processus, mais juste de detecter l'erreur
> pour
> > afficher un message 'propre' (j'invite l'utilisateur a choisir des criteres
> de
> > requete plus selectifs pour recuperer moins de donnees de la base).
> >
> > L'erreur arrive juste car il y a trop de donnees a manipuler. Beaucoup de
> > donnees sont recuperees de la base, et que la sortie soit Excel ou PDF,
> > apparemment on passe le 'generate' mais pas le 'transform'.
> >
> > pour la sortie excel par exemple :
> >
> > <map:generate type="serverpages" src="[...nom_de_mon_fichier...].xsp"/>
> > <map:transform src="[...nom_de_mon_fichier...].xsl"/>
> > <map:serialize type="xls"/>
> >
> > En cours de transformation, j'ai mon erreur. Cocoon n'est pas bloque a
> > proprement parler, il suffit de faire un 'back' du navigateur (ce n'est pas
> > beau et c'est bien ce que je voudrais eviter en ayant 'ma' page d'erreur
> > propre), et on retrouve l'appli, prete a l'emploi, on peut faire d'autres
> > actions.
> >
> > Des idees sur comment DETECTER l'erreur 'OutOfMemory' en fait ?
> >
> > Merci d'avance. J'ai lu tout ce que j'ai pu sur le net mais il s'agit
> toujours
> > de comment eviter l'erreur, pas de savoir la detecter.
> >
> > Cordialement,
> > Jean-Michel
> >
> > Selon Bertrand Delacretaz <bdelacretaz@apache.org>:
> >
> >
> >> On 1/22/07, jmc.artignan@free.fr <jmc.artignan@free.fr> wrote:
> >>
> >>
> >>> ...J'essaie de catcher l'erreur 'OutOfMemory' pour rediriger
> l'utilisateur
> >>>
> >> vers une
> >>
> >>> page d'erreur propre, aux couleurs de mon appli....
> >>>
> >> Je n'ai jamais approfondi la question en ce qui concerne Cocoon, mais
> >> en général il n'est pas recommandé de "catcher" une OutOfMemoryError:
> >> la JVM, ou en tout cas le thread qui traite la requête, peut être dans
> >> un état incohérent, on ne peut plus compter dessus pour faire quelque
> >> chose de sensé.
> >>
> >> Voir par exemple http://www.onjava.com/lpt/a/1110 et
> >> http://tomcat.apache.org/faq/memory.html#why (en anglais).
> >>
> >> Il est à mon avis nécessaire de redémarrer la JVM si cela se produit,
> >> pour éviter d'arriver dans un état incohérent. Mais je ne suis pas
un
> >> super-spécialiste de Tomcat ou Jetty, peut-être que quelqu'un a des
> >> infos plus précises?
> >>
> >> -Bertrand
> >>
> >>
> >
> >
> >
> > ---------------------------------------------------------------------
> > Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
> > Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
> > Autres commandes : mailto:users-fr-help@cocoon.apache.org
> >
> >
> Bonjour !
> Pour mon premier message sur la liste je ne vais pas résoudre le
> problème ...
> De ce que j'en sais : OutOfMemory va survenir sur la JVM et non sur un
> thread en particulier, donc c'est l'ensemble du serveur qui va tomber.
> Je ne pense pas qu'on puisse détecter l'erreur directement dans la
> webapplication. Peut être que Tomcat est capable de le faire via
> l'utilisation du web.xml de la webapplication ou bien d'un paramètre
> dans server.xml mais j'en doute.
> Une solution qui peut marcher : apache en frontal et Tomcat derrière.
> Apache gère les pages d'erreurs les plus graves, lorsque Tomcat répond
> un erreur 500 ou bien ne répond pas. Malheureusement je ne connais pas
> assez Apache pour t'aider.
>
> Exemple d'un web.xml (encore une fois je pense pas que cela puisse
> marcher avec OFM) :
>
> ...
> <!-- Liste des pages d'erreurs -->
>   <error-page> <!-- Non trouvé -->
>       <error-code>404</error-code>
>       <location>/jsp/404.jsp</location>
>   </error-page>
>   <error-page> <!-- Erreur interne serveur -->
>       <error-code>500</error-code>
>       <location>/jsp/500.jsp</location>
>   </error-page>
>   <error-page> <!-- Ca marche ca ? -->
>       <error-code>* java.lang.outOfMemory*</error-code>
>       <location>/jsp/500.jsp</location>
>   </error-page>
> ...
>
>
> Mathieu
>
> ---------------------------------------------------------------------
> Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
> Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
> Autres commandes : mailto:users-fr-help@cocoon.apache.org
>
>



---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org


Mime
View raw message