Hello Everyone,

We recently migrated Tomcat from 7.0.55 to 9.0.39. Everything is
working as expected except accessing exposed MBeans via JMX clients
like jconsole/jvisualvm. While troubleshooting the issue, I enabled
debug logging for both of those tools and it is throwing following
error:
java.rmi.ConnectIOException: non-JRMP server at remote endpoint
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:248)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202)
at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:338)
at sun.rmi.registry.RegistryImpl_Stub.lookup(RegistryImpl_Stub.java:112)
at sun.tools.jconsole.ProxyClient.checkSslConfig(ProxyClient.java:234)
at sun.tools.jconsole.ProxyClient.<init>(ProxyClient.java:127)
at sun.tools.jconsole.ProxyClient.getProxyClient(ProxyClient.java:475)
at sun.tools.jconsole.JConsole$3.run(JConsole.java:524)

We are using org.apache.catalina.mbeans.JmxRemoteLifecycleListener to
specify RMI registry and server port like this:
          <Listener
className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener"
rmiRegistryPortPlatform="8181" rmiServerPortPlatform="8282" />

And we can see that TC is registering properly to those ports:
         2021-02-02 05:07:08,541 INFO
org.apache.catalina.mbeans.JmxRemoteLifecycleListener - The JMX Remote
Listener has configured the registry on port [8181] and the server on
port [8282] for the [Platform] server

We use remote JMX with no authentication or SSL:
        -Dcom.sun.management.jmxremote.ssl=false
        -Dcom.sun.management.jmxremote.authenticate=false

Workaround is to add following options in JVM arguments and then I was
able to use JMX on port 8181:
        -Dcom.sun.management.jmxremote
        -Dcom.sun.management.jmxremote.port=8181

But I am not sure why it broke in Tomcat 9.0.39 in the first place
because with a similar configuration we are able to access JMX on
Tomcat 7.0.55. I noticed that JmxRemoteLifecycleListener has been
deprecated and will be removed in future[1] but we are on a version
which was released 3-4 months ago. So, could this be a bug or
something else?

[1] 2021-02-02 05:07:07,447 WARNING
org.apache.catalina.mbeans.JmxRemoteLifecycleListener - The
JmxRemoteLifecycleListener is deprecated as as the features it
provides are now available in the remote JMX capability included with
the JRE. This listener will be removed in Tomcat 10 and may be removed
from Tomcat 9 some time after 2020-12-31.

JDK version: jdk1.8.0_192
OS: Windows Server 2016

Thanks & Regards,
Suvendu

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to