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:
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:
| 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
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.