Using VisualVM to fix live Tomcat and JVM problems

You have done all your Java implementation, unittesting and perhaps integration testing. You met all specs and passed the acceptance phase, so you’re going to deploy your .war file to the live environment and install it on Tomcat. All goes well and you continue on other work to be done… A few hours later the system administrator calls you and asks you why the quad core processor reached 400% of CPU level (where normally it’s around 100% spread over 4 cores). You did the best you can with testing but still a problem like this can get through. Now the challenge starts: How to find what causes this problem!

CPU load is far higher then normal. Note the platforms in the graph!

CPU load is far higher then normal. Note the platforms in the graph!

Continue reading