This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
We have observed the following problem on our server. We are running Java Web Server 2.0 on WinNT4.0 machine with Dual 933MHZ PIII, 1GB Ram Dell Server. The memory leaks happen every time, but the method of crash always seems to vary. Sometimes the service just stops responding. The only way to bring it back is to kill the jrew.exe process, stop the service, and start the service. This works about 70% of the time. Sometimes after restarting the service, JWS still doesn't respond until we go into the admin tool and change the web page service from stopped to started. This happens about 15% of the time. Sometimes jrew GPF's. I often have to reboot after this happens, but sometimes I can just stop and start the service and it comes back up. This happens about 10% of the time. The final 5% of the crashes are the most spectacular. This is where the whole system stops responding, even to mouse movement. A hard reboot is the only solution here. But every time JWS crashes, there is never anything in the logs to give any clue as to what happened. We have also observed that the memory gets allocated to jrew.exe in chunks ranging from 4K to 16K until it tops out at the maximum VM setting and throws exceptions. Surprising thing is that even while serving the html pages the above said chunk of memory is getting assigned to the jrew.exe. This process continues till the memory used by jrew.exe reaches allocated cache memory and then the problem reported in para 2 above starts. we have allocated 750MB for Heap Memory and 384MB for cache memory. I have even tried out using System.gc() in all the servlets but there is no improvement at all. Anyone have any ideas ? Thanks, krishna