Its been a while since I have completed one of the Oracle MOOC (Massive Open Online Courses). This one on troubleshooting the JVM and OutOfMemoryErrors was particularly good.
This Oracle MOOC was run by Poonam Parhar, currently a JVM Sustaining Engineer at Oracle where her primary responsibility is to resolve customer escalated problems against JRockit and HotSpot JVMs
Here is the summary from the course:
If you are interested in learning why our Java applications might exhibit performance problems, abnormal memory usage growth or sometimes even fail with OutOfMemoryError exceptions, and you want to learn how these problems can be diagnosed and eradicated, then this course is for you! This course talks about different memory issues that we may come across with our java applications, and goes in detail on how we should approach these issues, what diagnostic tools we should use to collect the interesting diagnostic data, and what tools can help us analyze that data to get to the bottom of these memory problems.
This course has three weekly lessons, and in these lessons we will discover various aspects of memory management, garbage collectors implemented in the JVM, and what kind of memory problems we might encounter with our java applications. We will explore various diagnostic and troubleshooting tools that can help us in dealing with the memory related issues.
There is a quiz at the end of each week where you have to get 70% or more to pass.
All in all this course was just at the right level for the amount of time needed to complete it and it gave you a great overview of all the areas of JVM memory management and OutOfMemoryErrors. I'll definitely be diving deeper into some of the areas covered in this course like Flight Recording and heap dump analysis.
I would definitely recommend checking out the course and enrolling when they next run it.