kill doesn't work on Windows. Besides, I can't afford to stop the server right now. Many of our customers are using currently using the websites.
In order to get a thread-dump, you can do a CRTL-BREAK (not CTRL-C) on win32. Unfortunately, you have to already have started the JVM on a console, instead of as a service.
If it's already running, and you can't restart, you can write a JSP that will get a thread dump for you. Just look up Thread.getThreadGroup, ThreadGroup.getParent, and ThreadGroup.list and you can throw something together pretty quickly. Ideally, you can get a VM thread-dump, though.
Any idea why JVM would run out of memory? I thought GC would clean up the memory at a certain ratio.
In general, yes. However, it's easy to eat-up memory when you think the GC will take care of *everything*.
Sometimes, you will get a legitimate OutOfMemoryError. These occur when your application just plain needs more memory than you have allowed Java to use. Setting the max (and usually min) heap size to something larger will certainly help with that. However, if you have a memory leak, it will only prolong the enevitable.
-chris
signature.asc
Description: OpenPGP digital signature
