Hello,
1) The problem :
The servlet crash after few days (some time 3, some time 20). In the tomcat
logs, we get the following error :
StandardWrapperValve[Fop]: Servlet.service() pour la servlet Fop a généré
une exception java.lang.OutOfMemoryError
We have to restart Tomcat.
On an older server, with a smaller processor, the same java and same tomcat,
the servlet never crash (with less activity too).
2)The context :
I am succesfully using fop servlet to generate on fly pdf file. The file are
between 100Kb to 1Mb, with 1 to 3 pages. Most of the zize comme from the
inclued images (3 to 9 photos in print quality size). The servlet produce
about 15 PDF file per hours.
When tomcat start, and after some run of fop servlet, the java process are
arround 30Mb and increase all the time.
3) What we try :
We tought the problem come from the image cache. We run a script who ask for
a static fo file modified with PHP to change all the image urls by adding a
timestamp to avoid fop image cache. The shell script loop 1000 time and is
running 3 or more time. If the script wait 2s beetwen each fop generation,
the memory usage go to 158Mb for each java process and stay stable. fop does
not crash.
If the script don't wait, the memory consumption increase very fast to 273Mb
for each java process, many process crash and tomcat create new process. The
servlet become unstable and at the end do not respond anymore.
The second test where the script don't wait has no real word equivalent. The
first script waiting 2s look like the reality.
3) Detailled question :
I do not reset the image cache because of Internet explorer who use to call
2 times an url to download the pdf. By caching the image, the second
generation is very short.
I thought fop is caching all photos and growing in memory size, but our test
can not reproduce the crash in the same situation. We see the memory
consumption increasing and the garbage collector never run.
Do I have to manualy reset the fop image cache or does fop reset itself ?
If i create a dedicated method in my servlet to reset the cache should I
take care about anything special ?
My cheef don't think it's the image cache the problem, do you have any
suggestion to investigate ?
Thank by advance for your advices.
Cédric Augustin
-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]