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
_____________________________________________________________





 



Reply via email to