-
Pensez vous qu'il soit judicieux de forcer la fermeture de ces fichiers ?
Si oui, connaîtriez vous des commandes qui permettraient de fermer tous les fichiers relatifs à une session dès que celle-ci est fermée, ou de fermer un fichier en donnant son nom ?
Merci d'avance pour votre aide,
Cako19
-
Bonjour,
tu dois absolument laisser au conteneur la gestion des fichiers.
Mais il est évident que tu dois solutionner ton problème.Pour cela il faut en identifier précisemment la cause.
Dans un fonctionement normal Tomcat envoie les fichiers nécessaires au client (html, javascript, etc..) puis ferme ces fichiers.
Il n'y a pas de configuration pour modifier ce comportement.
Seuls les fichiers nécessaires au fonctionnement des conteneurs et de ton application doivent rester ouverts (librairies, fichiers de ressources, etc..)
Voici la procédure que je te propose :
Installer Tomcat en standalone sur un poste de développement
Installer ton application.
Lancer et parcourir toute ton application (pas besoin de faire des tests de charge)
--> lorsqu'aucune requête n'est en cours aucun fichier javascript ou html ne doit rester ouvert.
-
Le pb c'est que lorsque qu'il n'y a qu'un seul utilisateur, quelque soit le serveur (tomcat ou apache), le pb n'apparaît pas. Il n'apparaît que lorsqu'il y a un certain nbre d'utilisateurs et au bout d'un certain nombre de fois où le script a été joué. C'est pour ça que j'utilisais de la charge pour reproduire mon erreur (par exemple, si je mets 100 utilisateurs qui réalisent un certain scénario une 20taine de fois, j'ai l'erreur presque à chaque fois ).
En tout cas, merci encore pour ton aide !
-
Enfin, je voulais dire par là que j'ai déjà parcouru mon code mais avec apache comme serveur et je n'ai rien trouvé.
:cry:
-
Bon voilà, rien ne reste ouvert.
Mais pareil avec apache au lieu de tomcat en standalone.
-
il y aurait une autre piste
d'après le bug suivant (http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4189011) il ne serait pas possible au sein d'une JVM d'ouvrir plus de 2035 fichiers sous Windows.
J'ai fait le test sous XP et la JRE 1.4.2 et effectivement on est loin des 16384 théoriques.
Dans ton cas il se peut qu'a un instant t Tomcat soit très solicité et que cette limite soit atteinte.
Seulement ce bug n'a été corrigé qu'avec la version JSE 1.5.
Donc pour toi cela veut dire
soit tu change d'OS
soit tu passe à la JVM 1.5
-
OK !!
Tu as raison, j'utilise bien la version 1.4.2. Je vais essayer d'en changer vu que je n'envisage pas de changer d'OS.
merci beaucoup !!
-
attention la JVM 1.5 implique l'utilisation de Tomcat 5.5
-
J'ai essayé d'installer la JVM sans installer Tomcat 5.5 et ça a l'air de marcher pourtant. Enfin, c'est vrai que j'ai l'impression que ça provoque plus d'erreurs mais ça tourne quand même.
Changer de version de Tomcat, ça implique des changements dans le code ou pas ?
En fait, par là, tu veux dire que je dois carrément passer à la JDK 1.5 ?
-
L'utilisation de Tomcat 5.5 est conseillée (mais il est vrai pas obligatoire) pour tourner avec la JVM 1.5.
Cette version à été testée et est garantie pour fonctionner avec la JVM 1.5
c'est un conseil pas une obligation.
Changer de version de Tomcat n'implique pas de changement dans le code mais quelques changements dans la configuration.
-
Je vais essayer avec Tomcat 5.5 parce qu'après avoir testé, je n'ai plus à priori le pb "Too many open files" (mais j'ai pas poussé les tests trop loin), mais par contre j'obtiens beaucoup plus d'erreurs de connexions aux pages quand j'ai un nombre élevé d'utilisateurs.
Merci pour tout en tout cas et je croise les doigts pour que tout marche avec cette config !! :)
-
J'ai peur d'abuser... mais en fait, j'ai rencontré un autre pb en essayant de changer de version de tomcat :
Le passage d'API Servlet 2.3 (Tomcat 4.1) à 2.4 (Tomcat 5.5) ne marche pas. Ca ne compile pas !
:(