author | dsamersoff |
Sun, 03 Feb 2013 21:39:58 +0400 | |
changeset 15531 | 071efc9f31ad |
child 15653 | ce470531e852 |
permissions | -rw-r--r-- |
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; |