Question

I want to monitor my ESB using Jconsole and JMX. I can connect to JMX server from the localhost but for connecting from remote machine to my esb I can establish the connection. I use WSO2 ESB 4.6 and this my JMX configuration in carbon.xml file.

<JMX>
        <!--The port RMI registry is exposed-->
        <RMIRegistryPort>9999</RMIRegistryPort>
        <!--The port RMI server should be exposed-->
        <RMIServerPort>11111</RMIServerPort>
</JMX>
Was it helpful?

Solution

I found the problem, my rmi service was running on the host ip which was "127.0.0.1". To connect remotely to the jvm I had to bind the external ip to the hostname. To do this in unix systems use command hostname to get the name of the hostname. Then check the ip that is assigned to the hostname, to find out this use ping $(hostname) you will see that system is pinging the hosname's ip. If your host ip was the default 127.0.0.1 and you wanted to change it, just edit the file /etc/hosts as superuser. After rebooting the rmi service, you can reach it from the remote machine.

OTHER TIPS

Have a look at wso2carbon.log, you will find an entry like INFO {org.wso2.carbon.core.init.JMXServerManager} - JMX Service URL : service:jmx:rmi://localhost:11111/jndi/rmi://localhost:9999/jmxrmi {org.wso2.carbon.core.init.JMXServerManager}

Use given URL to connect to the carbon server from a remote JMX client (JVisualVM for example) and don't forget to define security credentials (default Username / Password is admin / admin)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top