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

Tomcat et TomEE Java Discussion :

[TOMCAT] Pb fermeture fichiers .js


Sujet :

Tomcat et TomEE Java

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 47
    Points : 17
    Points
    17
    Par défaut [TOMCAT] Pb fermeture fichiers .js
    Bonjour,

    J'ai des pb avec mon application Web développée en Java, javascript, html etc...
    Les utilisateurs se loggent, ouvrent une session et de temps en temps mais pas systématiquement (quand il y a bcp d'utilisateurs j'ai l'impression), j'ai des fichiers .js appelés dans une page html qui restent ouvert même après la fermeture de leur session et cela entraîne par la suite un plantage de mon application avec l'erreur "too many open files" relevée par tomcat (mon serveur applicatif). Mon serveur Web est apache.

    Qqun aurait-il une idée de ce qu'il se passe et de pkoi ces fichiers restent ouverts ? Au départ je pensais que ct pê parce que mon application les appelait grâce aux fonctions "open" et les refermait avec "close" et que j'oubliais des "close" mais apparemment ce n'est pas le cas puisqu'ils sont appelés par une page html.

    On m'a dit que ça pouvait venir d'un pb de serveur. Qu'en pensez vous? Si c'est le cas, est ce un pb de paramétrage de Tomcat ou d'apache et si oui, sauriez vous ce que je dois changer pour empêcher ça ?

    Merci d'avance pour votre aide,

    Cako19

  2. #2
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 47
    Points : 17
    Points
    17
    Par défaut
    Je suis vraiment désespérée. Personne n'a jamais rencontré ce pb, je suis la seule ?!!
    Pensez vous que je ne sois pas dans le bon thème de forum ?

  3. #3
    Membre régulier
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Avril 2003
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 145
    Points : 100
    Points
    100
    Par défaut
    Assez bizarre comme problème .

    Pourrais-tu poster le code qui appelle les .js afin que l'on puisse mieux analyser tout ça ?
    NiGhMa

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 47
    Points : 17
    Points
    17
    Par défaut
    voici un extrait du code qui appelle les .js. J'ai le même pb avec des gif, dont l'appel est ci dessous aussi.

    <SCRIPT language="JScript" TYPE="text/javascript" SRC="../scripts/awn/document/awn_document_ManageToc.js"></SCRIPT>

    <SCRIPT language="JavaScript" SRC="../scripts/awn/awnkernel/awn_awnKernel_FrameTitle.js"></SCRIPT>



    Pour le GIF (infoLogo.gif), cest une JSP qui construit l'appel a l'image...

    <TD width="36"><img src="<%=iErrorData.getGravityLogo()%>" width="36" height="36" title="<%=iErrorData.getGravityLabel()%>"></TD>


    Merci pour votre aide

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Points : 307
    Points
    307
    Par défaut
    Bonjour,

    je ne pense pas que l'on puisse maitriser la fermeture des fichiers javascript.

    il n'y a pas de limite dans Apache ou Tomcat quand au nombre max de fichiers ouverts.

    La limitation doit provenir de ton OS (Unix ?) et c'est de ce coté qu'il faut chercher.

  6. #6
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 47
    Points : 17
    Points
    17
    Par défaut
    Je suis sous Windows Server 2000, et le pb est que ce nombre de fichiers augmente indéfiniment, donc quelle que soit la limite du nombre de handle possible (sous windows, c'est 16384), ça plantera toujours à un moment donné, non ?

    En plus, mon application tourne sous forme de service NT. J'ai plusieurs services NT avec l'application qui tourne, et quand une application sur un service plante, les autres ne plantent pas. Sauriez vous s'il y a une limite de handle ouverts pour un service NT ?
    Mais c'est vrai que je remarque que les .js qui ne se referment pas n'existent que pour les services (correspondant à mon application) où il y a beaucoup d'utilisateurs. Les autres ne plantent jamais.
    Est ce que je suis claire ou bien est ce qu'il faudrait que je donne plus d'explications ?
    En tout cas, merci beaucoup pour votre aide. Ca fait longtemps que j'ai ce pb et je tourne en rond !

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Points : 307
    Points
    307
    Par défaut
    16384 est effectivement la limite sous Windows ce qui me semble énorme.

    Tu ne pourras pas contourner ce problème de limitation de l'OS.

    Au mieux tu peux augmenter le nombre de process d'Apache et de Tomcat pour diminuer le nombre de fichiers ouverts par thread.

    Tu peux essayer aussi de faire la chasse aux fichiers ouverts dans ton application.

    Ton erreur se produit après plusieurs jours d'utilisations ? (si oui tu peux prévoir un arrêt relance des serveur toutes les nuits)

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Points : 307
    Points
    307
    Par défaut
    Après recherche l'erreur n'est pas forcement due à des fichiers restés ouverts mais aussi (surtout) au nombre de sockets ouverts (echanges client serveur).

    Dans le lien suivant tu trouveras quelques explications supplementaires ainsi qu'un lien vers un utilitaire windows qui te permettra de visualiser les handles ouverts ainsi qu'un règlage pour Windows permettant de libérer plus rapidemement les socket fermés.

    http://support.bea.com/application_content/product_portlets/support_patterns/wls/Too_Many_Open_Files_Pattern.html

  9. #9
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 47
    Points : 17
    Points
    17
    Par défaut
    Merci beaucoup pour ta réponse, mais j'avais déjà lu ce lien et j'ai déjà utilisé l'utilitaire "handle.exe" pour connaître quels étaient mes fichiers ouverts. C'est comme ça que j'ai pu chercher où ils étaient appelés pensant que c'était sûrement un pb de code (des close() pas réalisés) mais ce n'était pas ça vu qu'ils sont appelés dans un html, et c'est pour ça que je bloque et que je ne vois vraiment pas d'où peut venir le pb.
    Et aussi, j'avais augmenté dans Apache le nombre Threadperchild de 250 à 600 et dans tomcat le nombre de maxProcessor de 75 à 600.
    J'ai aussi tunné ma JVM à 600m au lieu de 64 par défaut (avec les commandes -Xms et -Xmx).

    Aussi, mon erreur se produit effectivement après plusieurs jours d'utilisation mais en fait, je dois malheureusement ne pas avoir à prévoir de reboot, même si je sais que ce serait bien pratique !!
    Je suis désespérée !

    Encore merci pour ta réponse, mon pb est un vrai casse tête !!!

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Points : 307
    Points
    307
    Par défaut
    sais tu si ton probleme est soulevé par Apache ou par Tomcat.

    S'il s'agit de pages html alors je dirais que c'est plutôt Apache qui lève cette erreur.

    Sinon as tu essayé de changer de version ? d'utilser Tomcat en standalone ?

  11. #11
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 47
    Points : 17
    Points
    17
    Par défaut
    L'erreur "too many open files" est relevée par Tomcat.

    Quand tu parles de faire tourner Tomcat en standalone, tu veux dire utiliser Coyote à la place de Apache ? Mais mon application doit supporter 300 utilisateurs, tu crois que Coyote peut gérer ça ? Moi il ne semblait pas.

    Qu'en penses tu ?

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Points : 307
    Points
    307
    Par défaut
    300 utilisateurs c'est pas forcement énorme !

    Tout dépend du type de traitements (export PDF) du nombre d'objets en session, etc..

    De plus Tomcat peut être utilisé en cluster.

    Tout d'abord il faudrait voir si cela solutionne ton problème.

  13. #13
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 47
    Points : 17
    Points
    17
    Par défaut
    Qu'est ce que ça veut dire "Tomcat utilisé en cluster" ?

    Je vais essayer avec Tomcat uniquement mais j'ai peur que ça ne solutionne pas mon pb, d'autant que l'erreur est soulevée par Tomcat.

    Bon, je te tiens au courant et merci encore pour ton aide !

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Points : 307
    Points
    307
    Par défaut
    Le clustering Tomcat permet de répartir la charge en utilisant plusieurs instances Tomcat

    http://tomcat.apache.org/tomcat-5.0-doc/cluster-howto.html

  15. #15
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 47
    Points : 17
    Points
    17
    Par défaut
    Si je ne garde que Tomcat, ça ne marche pas du tout. Au bout d'un moment, c'est carrément les sessions utilisateur qui ne se ferment plus. Je n'ai plus le pb des fichiers qui restent ouverts mais c'est aussi pê parce qu'il y a trop de pbs pour que cette erreur là apparaisse.
    Pffou quelle galère !!

    Et vraiment tu penses que ça ne peut pas être un pb applicatif (bon, c vrai que vu que les fichiers qui posent pb sont appelés par une page html, ça peut laisser penser que non !)? Je n'arrive pas à comprendre pkoi le serveur ferait que des fichiers (toujours les mêmes en plus) restent ouverts !

  16. #16
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 47
    Points : 17
    Points
    17
    Par défaut
    Heu...tu te demandes pê comment j'ai pu tester si vite. En fait, j'utilise Opensta pour tester avec de la charge.
    Voilà !

    Et donc, là au lieu de mettre le port Apache pour faire mon test, j'ai utilisé le port Tomcat (Coyote) mais le résultat est catastrophique ! enfin, j'ai pê pas fait ce qu'il fallait ?

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Points : 307
    Points
    307
    Par défaut
    Non ta procédure me semble correcte.

    Si je t'ai demandé de tester avec Tomcat en standalone c'est que je soupconne le connecteur Apache -- Tomcat d'être à l'origine de tes problèmes.

    As tu une erreur dans Tomcat lorsque tu "charge" l'application ?

    PS : Je n'y crois pas beaucoup mais pourrais tu essayer de remplacer language="JScript" par language ="javascript" dans tes JSP ?

  18. #18
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 47
    Points : 17
    Points
    17
    Par défaut
    Je n'ai pas de fichier catalina_log.txt mais voilà ce que j'ai dans le fichier "serviceerr.log" dans les logs de tomcat (je suppose que c'est parce que mon application tourne en mode service NT) mais je ne sais pas si ça peut être utile :

    6 janv. 2006 17:00:50 org.apache.commons.modeler.Registry loadRegistry
    INFO: Loading registry information
    6 janv. 2006 17:00:50 org.apache.commons.modeler.Registry getRegistry
    INFO: Creating new Registry instance
    6 janv. 2006 17:00:50 org.apache.commons.modeler.Registry getServer
    INFO: Creating MBeanServer
    6 janv. 2006 17:00:51 org.apache.coyote.http11.Http11Protocol init
    INFO: Initialisation de Coyote HTTP/1.1 sur le port 8231
    6 janv. 2006 17:00:54 org.apache.jk.common.ChannelSocket init
    INFO: JK2: ajp13 listening on /0.0.0.0:8233
    6 janv. 2006 17:00:54 org.apache.jk.server.JkMain start
    INFO: Jk running ID=0 time=0/16 config=d:\PROGRA~1\ANAV22~1.1\Tomcat\bin\..\conf\jk2.properties
    6 janv. 2006 17:00:54 org.apache.coyote.http11.Http11Protocol start
    INFO: Démarrage de Coyote HTTP/1.1 sur le port 8231
    6 janv. 2006 17:02:29 org.apache.jk.common.ChannelSocket processConnection
    INFO: connection timeout reached

    Enfin, le "connection timeout reached" me semble louche, non ? mais je ne l'avais pas avant, alors que j'avais déjà le pb donc ça n'a sûrement aucun intérêt

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Points : 307
    Points
    307
    Par défaut
    La ligne "INFO: connection timeout reached" semble indiquer que le connecteur Apache -- Tomcat est toujours utilisé (il faudrait peut être une configuration propre pour que les tests soient pertinents)

    A ce propos quelle est la valeur du timeout dans ta configuration de ton connecteur ? Essaie de la baisser pour diminuer le nombre de Handle ouvert.

  20. #20
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 47
    Points : 17
    Points
    17
    Par défaut
    J'avais pas de paramètres connectionTimeout donc je suppose que c'était la valeur par défaut. Je l'ai baissée à 30000 au lieu de 60000 mais tu ne penses pas que ça ne fera que retarder le pb ? Enfin, c'est déjà ça tu me diras.

    Par contre j'aimerais bien tester correctement mais voilà que l'erreur "INFO: connection timeout reached" ne veut plus partir maintenant. Mais elle est nouvelle d'aujourd'hui cette erreur.

Discussions similaires

  1. [TOMCAT] parametrage du fichier web.xml
    Par sebos63 dans le forum Tomcat et TomEE
    Réponses: 12
    Dernier message: 06/05/2010, 13h09
  2. [struts][tomcat] chemin et fichiers inaccessibles...
    Par nikalkal dans le forum Tomcat et TomEE
    Réponses: 5
    Dernier message: 03/05/2006, 16h10
  3. Fermeture Fichier Excel
    Par beurnoir dans le forum Access
    Réponses: 22
    Dernier message: 28/10/2005, 17h22
  4. [tomcat 5] [paramétrage] fichier de log System.out.println
    Par Aldo dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 22/02/2005, 15h41
  5. [TomCat][sécurité]config fichier web.xml
    Par liomac dans le forum Tomcat et TomEE
    Réponses: 6
    Dernier message: 24/09/2003, 16h46

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