[Jsp] Verifier les fuites mémoires ?

Verifier les fuites mémoires ? [Jsp] - Java - Programmation

Marsh Posté le 28-09-2005 à 11:03:37    

Ci joint mon code
 

Code :
  1. <%@ page import="java.util.*, java.net.*, java.text.*, java.util.zip.*, java.io.*" %>
  2. <%@ include file="Common.jin" %>
  3. <% nWhichPage = HspConstants.LOGON; %>
  4. <%@ include file="LogOn.jin" %>
  5. <html>
  6. <head>
  7. <title>Change Password</title>
  8. <link rel="stylesheet" type="text/css" href="HspStyle.css">
  9. <link rel="stylesheet" type="text/css" href="custom/HspCustom.css">
  10. </head>
  11. <body class="logon" leftmargin=0 topmargin=0 marginwidth=0 marginheight=0>
  12. <table border=0 cellpadding=0 cellspacing=0 width="100%" height="100%">
  13. <tr>
  14. <td align=center valign=top>
  15. <BR><BR><BR>
  16. <%
  17. if (bAllowLogOn)
  18. {
  19.   int erreur=1;
  20.   int longueur=5;
  21.   HspPlanning = (HyperionPlanningBean)session.getValue("HyperionPlanning" );
  22.   String nom=HspPlanning.getUserDisplayName();
  23.   String action = request.getParameter("action" );
  24.   String login = request.getParameter("login" );
  25.   String npasswd = request.getParameter("npasswd" );     
  26.   String npasswd2 = request.getParameter("npasswd2" );
  27.  
  28.       if (request.getParameter("npasswd" ) == null)
  29.       {
  30.         out.println("Password cannot be empty" );
  31.         erreur=1;     
  32.       }
  33.       else if (((String)request.getParameter("npasswd" )).length() < longueur )
  34.       {
  35.         out.println("Password must be "+ longueur +" at least" );
  36.         erreur=1;     
  37.       }
  38.       else if (npasswd.equals("" ))
  39.       {
  40.         out.println("Password cannot be empty" );
  41.         erreur=1;     
  42.       }
  43.       else if (request.getParameter("action" ) == null)
  44.       {
  45.          erreur=1;     
  46.       }
  47.       else if (action.equals("mdp" ))
  48.       {
  49.          if (npasswd.equals(npasswd2))
  50.          {
  51.            erreur = 0;
  52.            out.println("New Password Equals and not Empty" );     
  53.            //Start process
  54.            Process ls_proc = Runtime.getRuntime().exec("cmd /c touch toto" );
  55.            // Rediriger la sortie du process et decouper chaque ligne pour
  56.            // l afficher dans la liste des resultats
  57.            BufferedReader input = new BufferedReader(new InputStreamReader(ls_proc.getInputStream()));
  58.            String line;
  59.            while ((line = input.readLine()) != null)
  60.            {
  61.                 out.println(line + "<br>" );
  62.            }       
  63.          }
  64.          else
  65.          {
  66.            erreur=1; 
  67.            out.println("Passwords must be same" );
  68.          }
  69.       }     
  70.   if (erreur == 1)
  71.   {
  72.    %>  
  73.     <TABLE width=600 align="center" border="1" bgcolor="<%= HspImgs.COLOR_WHITE %>" bordercolor="<%= HspImgs.HEX_DARK_TEAL %>" cellpadding=1 cellspacing=0>
  74.         <form action="ChangePasswd.jsp" method=post>
  75.          <tr><td>Login : </td><td><input type="text" value="<%=nom%>" DISABLED></td></tr>
  76.               <tr><td>New Password : </td><td><input type="text" name="npasswd"></td></tr>
  77.         <tr><td>New Password : </td><td><input type="text" name="npasswd2"></td></tr>
  78.          <input type=hidden name="action" value="mdp">
  79.                <input type=hidden name="sso_token" value="<%= ssoToken %>">
  80.          <tr><td colspan="2" align="center"><input type=submit value="GO"></td></tr>
  81.          </form>
  82.     </table>
  83.     <%
  84.    }
  85. }
  86. %>
  87.  </td>
  88. </tr>
  89. </table>
  90. </body>
  91. </html>


 
j'ai eu un problème de fuite mémoire sur cette JSP, n'ayant pas énormément de connaissance JSP, j'aimerais savoir si quelqu'un pouvait me dire si mon code est correct (il démarre a partir du if (bAllowLogOn) ), et comment être sur que toutes les variables et process appeler ont bien libéré la mémoire ?

Reply

Marsh Posté le 28-09-2005 à 11:03:37   

Reply

Marsh Posté le 28-09-2005 à 11:45:11    

ta "fuite memoire" se manifeste comment ? [:petrus75]
 
sinon, tu devrais mieux gérer les exceptions et fermer ton BufferedReader (dans une clause finally par exemple)

Reply

Marsh Posté le 28-09-2005 à 12:13:55    

les fuites mémoires se manifeste par des service qui tombe avec un out of memory commen l annuaire ldap, le moteur essbase etc etc

Reply

Marsh Posté le 28-09-2005 à 12:16:01    

C'est pas nécessairement une fuite mémoire ça, ça peut tout simplement être que t'as énormément de données stockés/utilisées et que la valeur par défaut de la JVM l'empêche d'obtenir la RAM nécessaire [:spamafote]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 28-09-2005 à 12:53:01    

[:totoz][:totoz][:totoz][:totoz][:totoz][:totoz]
 
 
(sinon, le compilo jsp de tomcat à des fuites connues au moins jusqu'a la derniere version 4, et je soupçonne la 5 d'en avoir aussi)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 28-09-2005 à 12:59:43    

the real moins moins a écrit :


 
 
(sinon, le compilo jsp de tomcat à des fuites connues au moins jusqu'a la derniere version 4, et je soupçonne la 5 d'en avoir aussi)


[:pinoguino]


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 28-09-2005 à 13:25:38    

(je crois que c'est à cause de javac qui fuit aussi, mais qu'en temps normal on s'en fout puisqu'il est supposé avoir un cycle de vie plutot court)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 28-09-2005 à 13:30:41    

Excusez moi, les fuites de memoire en question sont enfait des taches dans le compilo qui prennent de plus en plus de ram pour faire des actions qui en ont pas besoin? Ou j'ai effectivement rien compris :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 28-09-2005 à 13:39:12    

the real moins moins a écrit :

(je crois que c'est à cause de javac qui fuit aussi, mais qu'en temps normal on s'en fout puisqu'il est supposé avoir un cycle de vie plutot court)


il faut l'utiliser en sous-process alors, pas en interne dans la JVM.
C'est plus lourd, mais y'a moins de surprises.


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 28-09-2005 à 13:47:19    

ou bien faut pas utiliser de jsp [:vague nocturne]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 28-09-2005 à 13:47:19   

Reply

Marsh Posté le 28-09-2005 à 13:48:13    

j'achète [:bien]


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 28-09-2005 à 16:01:00    

c'est sur un Weblogic sous Solaris 9 avec une JVM de 1Go


Message édité par nidosaur le 28-09-2005 à 16:01:18
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed