Skip to content

Commit 4bc8eca

Browse files
committed
Added feature: custom jmx protocol connection (aragozin#17)
Now supports Wildfly's http-remoting jmx protocol. Sample in-shell usage with wildfly client jars: LIB_DIR="${WILDFLY_HOME:-/opt/wildfly}/bin/client" JMX_PROTO="http-remoting-jmx" java \ -Djmx.service.protocol=${JMX_PROTO} \ -Djava.ext.dirs=${LIB_DIR} \ -jar "/opt/jvm-tools/sjk-plus.jar" $@
1 parent 8cb5cae commit 4bc8eca

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

JMX-HTTP.md

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
WildFly application service support proprietary
2+
JMX over HTTP transport.
3+
4+
Below is example shell script to let SJK use JMX over HTTP instead of JMX over RMI transport.
5+
Additional WildFly client jars are required.
6+
7+
#!/usr/bin/env bash
8+
set -eu
9+
LIB_DIR="${WILDFLY_HOME:-/opt/wildfly}/bin/client"
10+
JMX_PROTO="http-remoting-jmx"
11+
12+
java \
13+
-Djmx.service.protocol=${JMX_PROTO} \
14+
-Djava.ext.dirs=${LIB_DIR} \
15+
-jar "/opt/jvm-tools/sjk-plus.jar" $@

sjk-core/src/main/java/org/gridkit/jvmtool/JmxConnectionInfo.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,12 @@ else if (sockAddr != null) {
9999
@SuppressWarnings("resource")
100100
private MBeanServerConnection connectJmx(String host, int port, Map<String, Object> props) {
101101
try {
102-
final String uri = "service:jmx:rmi:///jndi/rmi://" + host + ":" + port + "/jmxrmi";
102+
String proto = System.getProperty("jmx.service.protocol", "rmi");
103+
104+
final String uri = "rmi".equals(proto) ?
105+
"service:jmx:rmi:///jndi/rmi://" + host + ":" + port + "/jmxrmi" :
106+
"service:jmx:" + proto + "://" + host + ":" + port;
107+
103108
JMXServiceURL jmxurl = new JMXServiceURL(uri);
104109
JMXConnector conn = props == null ? JMXConnectorFactory.connect(jmxurl) : JMXConnectorFactory.connect(jmxurl, props);
105110
// TODO credentials

0 commit comments

Comments
 (0)