Hi Adam, yesterday Matthias sent me a 1.0.2-SNAPSHOT (tanks again!). I did some further testing with Tomcat and having the antiJarLocking option set to true in the the context.xml. With these settings I think I was able to track down the problem to a list of filenames as follows: java 12738 tomcat 65r VREG 85,40 26783 270804 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/adf/styles/cache/fmg-desktop-1745436599-ie-6-cmp.css java 12738 tomcat 66r VREG 85,40 2961 2719345 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/CharSets.js java 12738 tomcat 67r VREG 85,40 18937 2719361 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/CoreFormat.js java 12738 tomcat 68r VREG 85,40 3292 2719346 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/DateField.js java 12738 tomcat 69r VREG 85,40 365 2719356 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/DateFieldFormat.js java 12738 tomcat 70r VREG 85,40 12361 2719350 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/DateFormat.js java 12738 tomcat 71r VREG 85,40 10945 2719358 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/Locale.js java 12738 tomcat 72r VREG 85,40 44505 2719364 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/Core.js java 12738 tomcat 73r VREG 85,40 4944 2719342 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/Window.js java 12738 tomcat 74r VREG 85,40 3267 2719355 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/TableProxy.js java 12738 tomcat 75r VREG 85,40 1021 2719259 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/Poll.js java 12738 tomcat 76r VREG 85,40 2918 2719348 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/ColorField.js java 12738 tomcat 77r VREG 85,40 391 2719357 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/ColorFieldFormat.js java 12738 tomcat 78r VREG 85,40 5857 2719351 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/ColorFormat.js java 12738 tomcat 79r VREG 85,40 18382 2719353 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/Shuttle.js java 12738 tomcat 80r VREG 85,40 4648 2719363 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/Page.js java 12738 tomcat 81r VREG 85,40 639 2719362 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/StatusIndicator.js java 12738 tomcat 82r VREG 85,40 10520 2791503 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/xhr/RequestQueue.js java 12738 tomcat 83r VREG 85,40 2041 2791500 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/xhr/XMLRequest.js java 12738 tomcat 84r VREG 85,40 1630 2791501 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/xhr/XMLRequestEvent.js java 12738 tomcat 85r VREG 85,40 1594 2791502 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/xhr/IFrameXMLRequestEvent.js java 12738 tomcat 86r VREG 85,40 86 2653467 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/images/t.gif java 12738 tomcat 87r VREG 85,40 86 2653467 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/images/t.gif java 12738 tomcat 88r VREG 85,40 86 2653467 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/images/t.gif java 12738 tomcat 90r VREG 85,40 26783 270804 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/adf/styles/cache/fmg-desktop-1745436599-ie-6-cmp.css java 12738 tomcat 91r VREG 85,40 26783 270804 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/adf/styles/cache/fmg-desktop-1745436599-ie-6-cmp.css java 12738 tomcat 92r VREG 85,40 2961 2719345 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/CharSets.js java 12738 tomcat 93r VREG 85,40 18937 2719361 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/CoreFormat.js java 12738 tomcat 94r VREG 85,40 3292 2719346 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/DateField.js java 12738 tomcat 95r VREG 85,40 365 2719356 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/DateFieldFormat.js java 12738 tomcat 96r VREG 85,40 12361 2719350 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/DateFormat.js java 12738 tomcat 97r VREG 85,40 10945 2719358 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/Locale.js java 12738 tomcat 98r VREG 85,40 44505 2719364 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/Core.js java 12738 tomcat 99r VREG 85,40 4944 2719342 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/Window.js java 12738 tomcat 100r VREG 85,40 3267 2719355 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/TableProxy.js java 12738 tomcat 101r VREG 85,40 1021 2719259 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/Poll.js java 12738 tomcat 102r VREG 85,40 2918 2719348 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/ColorField.js java 12738 tomcat 103r VREG 85,40 391 2719357 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/ColorFieldFormat.js java 12738 tomcat 104r VREG 85,40 5857 2719351 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/ColorFormat.js java 12738 tomcat 105r VREG 85,40 18382 2719353 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/Shuttle.js java 12738 tomcat 106r VREG 85,40 4648 2719363 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/Page.js java 12738 tomcat 107r VREG 85,40 639 2719362 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/StatusIndicator.js java 12738 tomcat 108r VREG 85,40 10520 2791503 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/xhr/RequestQueue.js java 12738 tomcat 109r VREG 85,40 2041 2791500 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/xhr/XMLRequest.js java 12738 tomcat 110r VREG 85,40 1630 2791501 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/xhr/XMLRequestEvent.js java 12738 tomcat 111r VREG 85,40 1594 2791502 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/xhr/IFrameXMLRequestEvent.js java 12738 tomcat 112r VREG 85,40 2961 2719345 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/CharSets.js java 12738 tomcat 113r VREG 85,40 18937 2719361 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/CoreFormat.js java 12738 tomcat 114r VREG 85,40 3292 2719346 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/DateField.js java 12738 tomcat 115r VREG 85,40 365 2719356 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/DateFieldFormat.js java 12738 tomcat 116r VREG 85,40 12361 2719350 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/DateFormat.js java 12738 tomcat 117r VREG 85,40 10945 2719358 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/Locale.js java 12738 tomcat 118r VREG 85,40 44505 2719364 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/Core.js java 12738 tomcat 119r VREG 85,40 4944 2719342 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/Window.js java 12738 tomcat 120r VREG 85,40 3267 2719355 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/TableProxy.js java 12738 tomcat 121r VREG 85,40 1021 2719259 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/Poll.js java 12738 tomcat 122r VREG 85,40 2918 2719348 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/ColorField.js java 12738 tomcat 123r VREG 85,40 391 2719357 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/ColorFieldFormat.js java 12738 tomcat 124r VREG 85,40 5857 2719351 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/ColorFormat.js java 12738 tomcat 125r VREG 85,40 18382 2719353 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/Shuttle.js java 12738 tomcat 126r VREG 85,40 4648 2719363 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/Page.js java 12738 tomcat 127r VREG 85,40 639 2719362 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/StatusIndicator.js java 12738 tomcat 128r VREG 85,40 10520 2791503 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/xhr/RequestQueue.js java 12738 tomcat 129r VREG 85,40 2041 2791500 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/xhr/XMLRequest.js java 12738 tomcat 130r VREG 85,40 1630 2791501 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/xhr/XMLRequestEvent.js java 12738 tomcat 131r VREG 85,40 1594 2791502 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/jsLibs/xhr/IFrameXMLRequestEvent.js java 12738 tomcat 133r VREG 85,40 286 2653419 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/images/list-bullet.gif java 12738 tomcat 134r VREG 85,40 417 2653475 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/images/siready.gif java 12738 tomcat 135r VREG 85,40 781 2653474 /home/tomcat/CATALINA_BASE/work/Catalina/localhost/weasel/loader/META-INF/adf/images/sibusy.gif
This was tested with clearing the browser cache in before doing any requests to my application and navigating around a little bit. Repeating this test with a second browser (also clean cache) duplicated the count of open files. For now we manually do a GC in our application every 5 minutes to alleviate the problem but this is certainly only a quick&dirty solution. Peter -----Ursprüngliche Nachricht----- Von: Adam Winer [mailto:[EMAIL PROTECTED] Gesendet: Donnerstag, 21. Juni 2007 23:29 An: MyFaces Discussion Betreff: Re: [Trinidad] Causing Too many open files error? On 6/21/07, Simon Lessard < [EMAIL PROTECTED]> wrote: Hmmm, I assume this is used mainly to detect skin files' version? It's used in a bunch of places to detect modification - skin files, ResourceServlet, jsp modifications, etc. I've checked in a fix that should resolve this, but I'm not 100% sure. I've mostly been looking at the calls to FileInputStream.finalize() - there were a lot coming in that had still-open FileDescriptors. I'd appreciate further testing. It'd be worthwhile to look at optimizing further to block any attempt to call getLastModified() on a JAR, but for now I'm hoping it'll be enough to close up all URLConnections. In a bit of googling, it'd seem that this has bitten a lot of developers. -- Adam Maybe we could create a kind of ResourceDescriptor file that would include two URLs, the real one and the container file's (the .jar URL for instance, but would be the same as the real URL most of the time). The getLastModified method of the ResourceDescriptor could then use that second URL for purpose of modification checks, theorically preventing the JVM from opening the JAR file. Regards, ~ Simon On 6/21/07, Adam Winer < <mailto:[EMAIL PROTECTED]> [EMAIL PROTECTED]> wrote: I think I've found the problem - Trinidad calls URLConnection.getLastModified() in a number of places. If that's pointing at an URL from inside a JAR, this will implicitly open the JAR file, and not release the file until GC. Looking at solutions now. -- Adam On 6/21/07, Fleischer Peter < [EMAIL PROTECTED]> wrote: The problem is reproducable. After restarting tomcat and some requests to my application the jar file will again be opened multiple times. Every (initial?) request to a page increases the number. Eventually after some time the files are garbage collected. Peter -----Ursprüngliche Nachricht----- Von: Scott O'Bryan [mailto: [EMAIL PROTECTED] Gesendet: Donnerstag, 21. Juni 2007 00:29 An: MyFaces Discussion Betreff: Re: [Trinidad] Causing Too many open files error? I saw this as well using Oracle JDeveloper so I agree that I don't think this is a Tomcat issue. I'm not sure what might be causing this though because I shut down my webserver and restarted it and everything has been working fine since. What happens when you restart tomcat? Scott On 6/20/07, Fleischer Peter < [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> > wrote: Hello, we are developing a quite simple application based on MyFaces, Trinidad and Facelets. After deploying this application to a Tomcat 5.5.23 and using the application for a while we are facing connection errors in Tomcat caused by too many open files. Checking the running Tomcat process with lsof (list open files) we discovered, that <application>/WEB-INF/lib/trinidad- impl-1.0.1-incubating-SNAPSHOT.jar was open for about 300 times. The number rises with every request. At some time eventually a garbage collection closes all these files. I don't think this is a Tomcat error, because this jar is the only jar file opened so many times. Perhaps some Trinidad code fails to close a file? Is this a known issue? Many thanks in advance. Peter Fleischer _____________________________________________________________ Munich Airport International Flughafen München GmbH Peter Fleischer ITED Competence Center Application Development Support Division Information Technology P. O. Box 23 17 55 85326 München Phone: +49 89 975-3 24 30 Fax: +49 89 975-3 24 06 <mailto: [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]> <mailto:[EMAIL PROTECTED]> .de > Vorsitzender des Aufsichtsrats: - Chairman of the Supervisory Board: Staatsminister Prof. Dr. Kurt Faltlhauser Geschäftsführung: - Executive Board: Dr. Michael Kerkloh, Walter Vill und Peter Trautmann Handelsregister: - Commercial Register: RG München, HR-Nr. B 5448 Sitz der Gesellschaft: - Registered Office: München _____________________________________________________________

