jdk/src/share/classes/sun/management/jdp/package-info.java
author dsamersoff
Sun, 03 Feb 2013 21:39:58 +0400
changeset 15531 071efc9f31ad
child 15653 ce470531e852
permissions -rw-r--r--
8002048: Protocol to discovery of manageable Java processes on a network Summary: Introduce a protocol to discover manageble Java instances across a network subnet, JDP Reviewed-by: sla, dfuchs
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
15531
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
     1
/**
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
     2
 *  Summary
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
     3
 *  -------
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
     4
 *
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
     5
 *  Define a lightweight network protocol for discovering running and
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
     6
 *  manageable Java processes within a network subnet.
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
     7
 *
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
     8
 *
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
     9
 * Description
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    10
 * -----------
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    11
 *
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    12
 * The protocol is lightweight multicast based, and works like a beacon,
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    13
 * broadcasting the JMXService URL needed to connect to the external JMX
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    14
 * agent if an application is started with appropriate parameters.
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    15
 *
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    16
 * The payload is structured like this:
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    17
 *
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    18
 *  4 bytes JDP magic (0xC0FFEE42)
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    19
 *  2 bytes JDP protocol version (1)
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    20
 *  2 bytes size of the next entry
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    21
 *      x bytes next entry (UTF-8 encoded)
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    22
 *  2 bytes size of next entry
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    23
 *    ...   Rinse and repeat...
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    24
 *
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    25
 * The payload will be parsed as even entries being keys, odd entries being
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    26
 * values.
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    27
 *
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    28
 * The standard JDP packet contains four entries:
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    29
 *
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    30
 * - `DISCOVERABLE_SESSION_UUID` -- Unique id of the instance; this id changes every time
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    31
 *    the discovery protocol starts and stops
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    32
 *
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    33
 * - `MAIN_CLASS` -- The value of the `sun.java.command` property
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    34
 *
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    35
 * - `JMX_SERVICE_URL` -- The URL to connect to the JMX agent
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    36
 *
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    37
 * - `INSTANCE_NAME` -- The user-provided name of the running instance
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    38
 *
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    39
 * The protocol sends packets to 239.255.255.225:7095 by default.
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    40
 *
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    41
 * The protocol uses system properties to control it's behaviour:
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    42
 * - `com.sun.management.jdp.port` -- override default port
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    43
 *
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    44
 * - `com.sun.management.jdp.address` -- override default address
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    45
 *
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    46
 * - `com.sun.management.jmxremote.autodiscovery` -- whether we should start autodiscovery or
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    47
 * not. Autodiscovery starts if and only if following conditions are met: (autodiscovery is
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    48
 * true OR (autodiscovery is not set AND jdp.port is set))
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    49
 *
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    50
 * - `com.sun.management.jdp.ttl`         -- set ttl for broadcast packet, default is 1
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    51
 * - `com.sun.management.jdp.pause`       -- set broadcast interval in seconds default is 5
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    52
 * - `com.sun.management.jdp.source_addr` -- an address of interface to use for broadcast
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    53
 */
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    54
071efc9f31ad 8002048: Protocol to discovery of manageable Java processes on a network
dsamersoff
parents:
diff changeset
    55
package sun.management.jdp;