Troubleshooting Memleak

If you have trouble connecting to your JVM with Memleak, it is probably due to Memleak requiring an extra port. Communication using Memleak, unlike other tools in the JRockit Mission Control suite, is only initiated over JMX. Memleak requires the internal MemLeak Server (MLS) to be running in the JVM.

When starting Memleak, a run request is sent over JMX. The MLS will then be started and a communication port is returned. The client stops communicating over JMX after startup and instead uses the proprietary Memory Leak Protocol (MLP) over the communication port.

The MLS was built as a native server in JRockit, as the original idea was to be able to run the MLS when running out of Java heap, similar to the way that a heap dump can be triggered when running out of memory. We wanted to introduce a flag that would suspend the JVM on OutOfMemoryErrors and then launch the MLS. This was unfortunately never implemented.

It is possible to specify which port to use for MLS in the initial request over JMX. This can be set in the preferences, as shown in the following screenshot:

Troubleshooting Memleak

Also worth noting is:

  • There can only be one client connected to MLS at any given time
  • When a client disconnects, the MLS will automatically shut down
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.137.217.17