Eclipse Memory Ananlyser is a very useful tool to analyze heap dumps. It has a lot of features such as Memory Leak detection where it runs an automated test to determine the suspected leaks.
HereĀ is the Procedure
Step 1). Start the Weblogic Server, with the application in active state which causes memory leak.
Step 2). Get the process id of the server using jps
Step 3). Acess the application that causes memory leak
Step 4).Take heap dump at regular interval using jmap.
jmap -dump:format=b,file=dump1.bin 5004

Step 5).Open the Heap Dump in Eclipse Memory Ananlyzer (U can download it from http://www.eclipse.org/mat/downloads.php) Approximate size is 42 MB..Just u need to extract this Zip then u can directly start (no Installation needed)
Observe the heap usage of Objects in the heap dumps. If the object instance keeps on increasing in the subequent heap dumps, force a garbage collection from the Weblogic Server console

Take heap dumps again and open in the Eclipse Memory Analyzer. If the number of instances still don’t go down for those objects, you can expect to see this
<Jul 16, 2010 10:49:15 AM IST> <Critical> <Health> <BEA-310003> <Free memory in
the server is 47,856 bytes. There is danger of OutOfMemoryError>
Exception in thread “Thread-12″ java.lang.OutOfMemoryError: Java heap space
at demo.MemoryLeakTest.runTest(MemoryLeakTest.java:14)
at jsp_servlet.__memoryleak$1.run(__memoryleak.java:86)
at java.lang.Thread.run(Thread.java:619)
.
If the leak is happening due to a Weblogic Class, it can be a known issue or an undiscovered BUG. You need to get in touch with Oracle Support. If it’s an Application Class, you need to contact the developers. Out of Memory can also happen dude to third party codes such as database drivers.


16 Comments
Hi Faisal, It is great work!!
This blog is pretty much helpful for WebLogic Administrators. The way you wrote it is really cool!! one of the wonder!!
Expecting more wonders from your team…
Keep doing good work… I mean wonders
thanks Mate
You’re my hero! Thanks. Very, very helpful.
Thanks for your appreciation Ramesh!!
it’s very helpful to us……….. thanks a lot mate
Thanks Srinivas!
Hi,
After Analysing heap dump
weblogic.JMS.frontend.FEConsumer class consuming more than 1GB.why this happens.mine is 9.2MP3
Hi Smitha,
This can be a bug in the application/application server code.
Can you develop a simple test case to reproduce this issue?
Thanks,
Faisal
Hi’
I have downloaded the eclipse memory analyzer from the location provided however when I click on the MemoryAnalyzer.exe, its is not starting the eclipse. Can you advice me, I am using Win XP.
Thanks
Yatan
Hi Yatan,
What is the error you are getting?
Can you share screenshots?
Cheers!
Faisal
Hi,
Good Article,was very very useful for me.
I followed the above steps for leak Suspects,it showed me the below Problem Suspect 1
One instance of “weblogic.jdbc.common.internal.GenericConnectionPool” loaded by “sun.misc.Launcher$AppClassLoader @ 0x866ba340″ occupies 335,917,304 (90.26%) bytes. The memory is accumulated in one instance of “java.util.LinkedList$Entry” loaded by “”.
Keywords
weblogic.jdbc.common.internal.GenericConnectionPool
sun.misc.Launcher$AppClassLoader @ 0x866ba340
java.util.LinkedList$Entry
Can you please tell how can i suspect which page is creating a page leak.
Regards
Fabian
Take multiple heap dumps and see if the count of those objects are increasing or not.. also force the garbage collection from the admin console and take heap dump after that. If those objects are still in the heap then determine if the application is using those objects… hope this helps..
Thanks for sharing the information may i know how to handle the performance related issues
Thanks Pasha.
We will try to post an article on performance related issues.
Thank You Administrator Your article are very helpful
Thanks, you feedback is invaluable for us.
Regards,
Wonders Team.:-)
Post a Comment