Ik draai een JBoss application server. In die application server draaien een aantal EARs, en ook een James mailserver.
Af en toe heb ik de volgende foutmelding:
Op dat moment kan de JBoss server de deployment directory ook niet meer openen, en loopt alles in het honderd. De EAR-code en de website herstellen zich echter, maar James (de mailserver) wordt afgesloten en blijft neer.
Net voor dit gebeurde, werden heel veel shell-processen na elkaar gestart. Ook werden er een heleboel files geopent, en deze File-objecten werden ook gepersist in de appserver.
Nu is mijn gok dat het volgende gebeurt (in pseudo-code):
Ik denk dat de file-descriptor nooit vrijgegeven wordt, omdat aFile nooit ge-GCd wordt, en dus ook nooit gefinalize()'t. De garbage collector denkt niet dat het nodig is om te collecten, dus een Runtime.gc() zal ook niets doen. Er is immers geheugen genoeg; er zijn te weinig FILE DESCRIPTORS.
Wat zijn jullie idee-en hierover? Is er een manier in java om alle open file descriptors te zien?
Af en toe heb ik de volgende foutmelding:
code:
1
| java.io.FileNotFoundException: /vtk/web/www/stylesheets/menubuilder.xsl (Too many open files) |
Op dat moment kan de JBoss server de deployment directory ook niet meer openen, en loopt alles in het honderd. De EAR-code en de website herstellen zich echter, maar James (de mailserver) wordt afgesloten en blijft neer.
Net voor dit gebeurde, werden heel veel shell-processen na elkaar gestart. Ook werden er een heleboel files geopent, en deze File-objecten werden ook gepersist in de appserver.
Nu is mijn gok dat het volgende gebeurt (in pseudo-code):
code:
1
2
3
| File aFile; aFile.open(); persist(aFile); |
Ik denk dat de file-descriptor nooit vrijgegeven wordt, omdat aFile nooit ge-GCd wordt, en dus ook nooit gefinalize()'t. De garbage collector denkt niet dat het nodig is om te collecten, dus een Runtime.gc() zal ook niets doen. Er is immers geheugen genoeg; er zijn te weinig FILE DESCRIPTORS.
Wat zijn jullie idee-en hierover? Is er een manier in java om alle open file descriptors te zien?
WebDAV in Vista is horribly broken. Ik wil het fixen, maar ben nog steeds op zoek naar de tarball met de source...