Depending upon which J2SE version on which you are running the Oracle JRockit JVM, certain aspects of the communications protocols will differ. This chapter describes the protocols and their differences resultant from the different J2SE version.
This section includes information on the following subjects:
Figure 3-1 illustrates the communication topology for Oracle JRockit Mission Control.
J2SE 1.4 versions of JRockit Mission Control uses RMP (Rockit Management Protocol.), an older legacy protocol that has existed since the 1.3 versions of the Oracle JRockit JDK. RMP uses a single socket. You can specify the port of the listening socket by using the
-Xmanagement
:port option; for example -Xmanagement:port=7090
. Table 1-1 lists additional system properties you can use to further configure the agent.
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. Please see the following link for further information:
http://java.sun.com/javase/6/docs/technotes/guides/management/agent.html#gdfvv
Table 3-2 lists the options available for the -Xmanagement
flag:
For a more comprehensive discussion on what these options mean, please see:
http://java.sun.com/j2se/1.5.0/docs/guide/management/agent.html
.
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-3 lists additional system properties you can use to control the behavior of the JDP server:
All versions of JRockit Mission Control also employ an additional protocol when using the Memory Leak Detector. The memleak server is not written in Java; rather it is an integral part of the JVM. This is because a potential use case for the memleak 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 memleak server during a memleak 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 memleak server on, and to use for the session, by using Oracle JRockit Mission Control preferences. See Figure 3-1 for schematic of this process.