3 JRockit Mission Control Communications

This chapter describes the protocols and their differences resultant from the different J2SE versions.

Depending upon which J2SE version on which you are running the Oracle JRockit JVM, certain aspects of the communications protocols will differ.

This section includes information on the following subjects:

3.1 J2SE 5.0 and Later

J2SE 5.0 and later versions of the JRockit JDK use JMXRMI (JMX over RMI). This protocol uses one port for the RMI registry, which is configured with the -Xmanagement:port option, and a second port (on an anonymous port) for communication with the RMI server. Note that you cannot configure the port for the RMI server; however, you can write your own agent that defines a fixed port for the RMI server. For further information, see "Mimicking Out-of-the-Box Management Using the JMX Remote API" at:

http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html#gdfvv

Table 3-1 lists the options available for the -Xmanagement flag:

Table 3-1 -Xmanagement Option

Option Description Default
authenticate

Use password authentication

True

ssl

Use secure sockets layer

True

port

What port to use for the RMI registry

7091


For a more comprehensive discussion on what these options mean, please see "Monitoring and Management Using JMX" at:

http://java.sun.com/j2se/1.5.0/docs/guide/management/agent.html

3.2 All Versions

For all J2SE versions, you can use the -Xmanagement option autodiscovery to make the JRockit JVM use the JRockit Discovery Protocol (JDP) to announce its presence; for example -Xmanagement:autodiscovery=true.

Table 3-2 lists additional system properties you can use to control the behavior of the JDP server:

Table 3-2 System Properties Used to Control the JDP Server

System property Description Default
jrockit.managementserver.discovery.period

The time to wait between multicasting the presence in ms

5000

jrockit.managementserver.discovery.ttl

The number of router hops the packets being multicasted should survive

1

jrockit.managementserver.discovery.address

The multicast group/address to use

232.192.1.212

jrockit.managementserver.discovery.targetport

The target port to broadcast

7090(1.4)/7091(1.5)


All versions of JRockit Mission Control also employ an additional protocol when using the Memory Leak Detector. The memory leak server is not written in Java; rather it is an integral part of the JVM. This is because a potential use case for the memory leak server is to optionally be able to start it when an out of memory condition occurs in the JVM. When such a condition occurs, it is impossible to execute Java code because no heap would be available.

MLP (MemLeak Protocol) is used by the native memory leak server during a memory leak session. JRockit Mission Control communicates over RMP (1.4) or JMXRMI (5.0 and higher) to ask the Oracle JRockit JVM to start up the server. You can configure the port on which you want to start the memory leak server on, and to use for the session, by using Oracle JRockit Mission Control preferences.