cancel
Showing results for 
Search instead for 
Did you mean: 
Create Post
Level 10

JMX Monitoring

I am trying to monitor JBOSS via JMX. I am able to connect to the JBOSS server with Jconsole from the polling server, so am pretty sure this is not a network connectivity issue. I cannot seem to find a clear doc on how to get this working. The server that has jboss on it has the SW agent installed, but I am aware that JMX does not use the agent.

Any direction is MUCH appreciated!

0 Kudos
16 Replies
Level 11

SolarWinds updated JMX-related documentation in SAM 2020.2. For the latest details, please see Configure Java application servers and JVMs for SAM monitoring.

0 Kudos
Level 8

Has anybody had any luck with this issue? I am setting up SAM 6.9 trying to connect to Jboss EAP 7.2 and EAP 6.4.I can use the jconsole.bat to connect to both EAP 7.2 and 6.4.

Any feedback would be much appreciated. Connot connect to JMX server.

From the application log-

2019-12-05 14:43:23,025 [STP SmartThreadPool Thread #2] [C163] ERROR SolarWinds.APM.Probes.JMX.JmxCommunicationManager - Cannot connect to the server [bridgeUrl=http://localhost:9191/jmxbridge, serverUri=service:jmx:rmi:///jndi/rmi://111.111.111.111:9999service:jmx:remoting-jmx://hostname:] Exception:System.Web.Services.Protocols.SoapException: For input string: "9999service:jmx:remoting-jmx:"

   at SolarWinds.JMX.QueryServiceClient.JmxBridgeSession.ConvertConnectionException(SoapException ex)

   at SolarWinds.JMX.QueryServiceClient.JmxBridgeSession.Connect(String serviceAddr, String username, String password)

   at SolarWinds.APM.Probes.JMX.JmxSessionCache.GetConnection(String bridgeUrl, String serverUri, String userName, String password)

   at SolarWinds.APM.Probes.JMX.JmxCommunicationManager.Connect(String bridgeUrl, String serverUri, UserNamePasswordCredential credential, IJobResultStatus resultStatus)

2019-12-05 14:43:23,026 [STP SmartThreadPool Thread #2] [C163] DEBUG SolarWinds.APM.Probes.MonitorJob - Monitor test finished - ComponentId: 163; NodeId: 3; NodeName: hostname; ApplicationId: 6; ComponentName: Classes Loaded Count; ComponentType: SolarWinds.APM.Probes.JmxProbe, SolarWinds.APM.Probes, Version=2019.4.0.12548, Culture=neutral, PublicKeyToken=null; CustomLogEnabled: True; TestSessionId: bf1ebfe4-0740-4c83-b836-758e9a90d972;

From the jmx bridge log

2019-12-05 14:16:51,841 [pool-1-thread-33hread] INFO  com.solarwinds.jmxbridge.JMXSessionCache - Connecting to 'service:jmx:rmi:///jndi/rmi://111.111.111.111:8080/jmxrmi'...

2019-12-05 14:16:55,959 [pool-1-thread-32hread] INFO  com.solarwinds.jmxbridge.JMXSessionCache - Connecting to 'service:jmx:rmi:///jndi/rmi://111.111.111.111:9999service:jmx:remoting-jmx://hostname:9999'...

2019-12-05 14:16:55,961 [pool-1-thread-32hread] ERROR com.solarwinds.jmxbridge.JMXQueryService - Connect to service:jmx:rmi:///jndi/rmi://111.111.111.111:9999service:jmx:remoting-jmx://hostname:9999 failed.

java.lang.NumberFormatException: For input string: "9999service:jmx:remoting-jmx:"

at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68)

at java.base/java.lang.Integer.parseInt(Integer.java:658)

at java.base/java.lang.Integer.parseInt(Integer.java:776)

at jdk.naming.rmi/com.sun.jndi.url.rmi.rmiURLContext.getRootURLContext(rmiURLContext.java:102)

at java.naming/com.sun.jndi.toolkit.url.GenericURLContext.lookup(GenericURLContext.java:204)

at java.naming/javax.naming.InitialContext.lookup(InitialContext.java:409)

at java.management.rmi/javax.management.remote.rmi.RMIConnector.findRMIServerJNDI(RMIConnector.java:1839)

at java.management.rmi/javax.management.remote.rmi.RMIConnector.findRMIServer(RMIConnector.java:1813)

at java.management.rmi/javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:302)

at com.solarwinds.jmxbridge.JMXSessionCache.connect(JMXSessionCache.java:47)

at com.solarwinds.jmxbridge.JMXQueryService.connect(JMXQueryService.java:46)

at jdk.internal.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.base/java.lang.reflect.Method.invoke(Method.java:567)

at com.sun.xml.ws.util.Trampoline.invoke(MethodUtil.java:82)

at jdk.internal.reflect.GeneratedMethodAccessor21.invoke(Unknown Source)

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.base/java.lang.reflect.Method.invoke(Method.java:567)

at com.sun.xml.ws.util.MethodUtil.invoke(MethodUtil.java:107)

at com.sun.xml.ws.api.server.MethodUtil.invoke(MethodUtil.java:64)

at com.sun.xml.ws.api.server.InstanceResolver$1.invoke(InstanceResolver.java:250)

at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:149)

at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:88)

at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:1136)

at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:1050)

at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:1019)

at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:877)

at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:419)

at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:868)

at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:422)

at com.sun.xml.ws.transport.http.server.WSHttpHandler.handleExchange(WSHttpHandler.java:113)

at com.sun.xml.ws.transport.http.server.WSHttpHandler.handle(WSHttpHandler.java:97)

at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77)

at jdk.httpserver/sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:82)

at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:80)

at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:692)

at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77)

at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:664)

at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)

at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)

at java.base/java.lang.Thread.run(Thread.java:830)

0 Kudos

alex123  wrote:

Has anybody had any luck with this issue? I am setting up SAM 6.9 trying to connect to Jboss EAP 7.2 and EAP 6.4.I can use the jconsole.bat to connect to both EAP 7.2 and 6.4.

Any feedback would be much appreciated. Connot connect to JMX server.

From the application log-

2019-12-05 14:43:23,025 [STP SmartThreadPool Thread #2] [C163] ERROR SolarWinds.APM.Probes.JMX.JmxCommunicationManager - Cannot connect to the server [bridgeUrl=http://localhost:9191/jmxbridge, serverUri=service:jmx:rmi:///jndi/rmi://111.111.111.111:9999service:jmx:remoting-jmx://hostname:] Exception:System.Web.Services.Protocols.SoapException: For input string: "9999service:jmx:remoting-jmx:"

   at SolarWinds.JMX.QueryServiceClient.JmxBridgeSession.ConvertConnectionException(SoapException ex)

   at SolarWinds.JMX.QueryServiceClient.JmxBridgeSession.Connect(String serviceAddr, String username, String password)

   at SolarWinds.APM.Probes.JMX.JmxSessionCache.GetConnection(String bridgeUrl, String serverUri, String userName, String password)

   at SolarWinds.APM.Probes.JMX.JmxCommunicationManager.Connect(String bridgeUrl, String serverUri, UserNamePasswordCredential credential, IJobResultStatus resultStatus)

2019-12-05 14:43:23,026 [STP SmartThreadPool Thread #2] [C163] DEBUG SolarWinds.APM.Probes.MonitorJob - Monitor test finished - ComponentId: 163; NodeId: 3; NodeName: hostname; ApplicationId: 6; ComponentName: Classes Loaded Count; ComponentType: SolarWinds.APM.Probes.JmxProbe, SolarWinds.APM.Probes, Version=2019.4.0.12548, Culture=neutral, PublicKeyToken=null; CustomLogEnabled: True; TestSessionId: bf1ebfe4-0740-4c83-b836-758e9a90d972;

From the jmx bridge log

2019-12-05 14:16:51,841 [pool-1-thread-33hread] INFO  com.solarwinds.jmxbridge.JMXSessionCache - Connecting to 'service:jmx:rmi:///jndi/rmi://111.111.111.111:8080/jmxrmi'...

2019-12-05 14:16:55,959 [pool-1-thread-32hread] INFO  com.solarwinds.jmxbridge.JMXSessionCache - Connecting to 'service:jmx:rmi:///jndi/rmi://111.111.111.111:9999service:jmx:remoting-jmx://hostname:9999'...

2019-12-05 14:16:55,961 [pool-1-thread-32hread] ERROR com.solarwinds.jmxbridge.JMXQueryService - Connect to service:jmx:rmi:///jndi/rmi://111.111.111.111:9999service:jmx:remoting-jmx://hostname:9999 failed.

java.lang.NumberFormatException: For input string: "9999service:jmx:remoting-jmx:"

at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68)

at java.base/java.lang.Integer.parseInt(Integer.java:658)

at java.base/java.lang.Integer.parseInt(Integer.java:776)

at jdk.naming.rmi/com.sun.jndi.url.rmi.rmiURLContext.getRootURLContext(rmiURLContext.java:102)

at java.naming/com.sun.jndi.toolkit.url.GenericURLContext.lookup(GenericURLContext.java:204)

at java.naming/javax.naming.InitialContext.lookup(InitialContext.java:409)

at java.management.rmi/javax.management.remote.rmi.RMIConnector.findRMIServerJNDI(RMIConnector.java:1839)

at java.management.rmi/javax.management.remote.rmi.RMIConnector.findRMIServer(RMIConnector.java:1813)

at java.management.rmi/javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:302)

at com.solarwinds.jmxbridge.JMXSessionCache.connect(JMXSessionCache.java:47)

at com.solarwinds.jmxbridge.JMXQueryService.connect(JMXQueryService.java:46)

at jdk.internal.reflect.GeneratedMethodAccessor22.invoke(Unknown Source)

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.base/java.lang.reflect.Method.invoke(Method.java:567)

at com.sun.xml.ws.util.Trampoline.invoke(MethodUtil.java:82)

at jdk.internal.reflect.GeneratedMethodAccessor21.invoke(Unknown Source)

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.base/java.lang.reflect.Method.invoke(Method.java:567)

at com.sun.xml.ws.util.MethodUtil.invoke(MethodUtil.java:107)

at com.sun.xml.ws.api.server.MethodUtil.invoke(MethodUtil.java:64)

at com.sun.xml.ws.api.server.InstanceResolver$1.invoke(InstanceResolver.java:250)

at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:149)

at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:88)

at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:1136)

at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:1050)

at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:1019)

at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:877)

at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:419)

at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:868)

at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:422)

at com.sun.xml.ws.transport.http.server.WSHttpHandler.handleExchange(WSHttpHandler.java:113)

at com.sun.xml.ws.transport.http.server.WSHttpHandler.handle(WSHttpHandler.java:97)

at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77)

at jdk.httpserver/sun.net.httpserver.AuthFilter.doFilter(AuthFilter.java:82)

at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:80)

at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange$LinkHandler.handle(ServerImpl.java:692)

at jdk.httpserver/com.sun.net.httpserver.Filter$Chain.doFilter(Filter.java:77)

at jdk.httpserver/sun.net.httpserver.ServerImpl$Exchange.run(ServerImpl.java:664)

at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)

at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)

at java.base/java.lang.Thread.run(Thread.java:830)

Hi Nicholas, have you opened up a support case with us yet? Submit a Ticket | SolarWinds Customer Portal

0 Kudos

Serena,

Thanks for responding so quickly. I have not opened a ticket yet. I have the trial version of SAM installed. I am currently testing this out to see if it works to replace our current JBoss Operational Network monitoring that RedHat currently has.

After further research, I can't find anything that says SAM will work the JBoss EAP 7.2. If I can open a ticket I will get that done.

Thank you,

Nicholas

0 Kudos

alex123  wrote:

Serena,

Thanks for responding so quickly. I have not opened a ticket yet. I have the trial version of SAM installed. I am currently testing this out to see if it works to replace our current JBoss Operational Network monitoring that RedHat currently has.

After further research, I can't find anything that says SAM will work the JBoss EAP 7.2. If I can open a ticket I will get that done.

Thank you,

Nicholas

Nicholas,

If you're not a current customer, then submitting a support request via the link that I provided wouldn't work out. Have you been working with a sales rep? If so, you can send your diagnostics to that rep, and they can escalate to us to get those diagnostics to us. We have a hypothesis on an issue with JBoss EAP, which we're tracking internally via SAM-10103 but it would be great to get your diagnostics to confirm.

0 Kudos

Serena,

I have a support ticket created for troubleshooting this issue. The ticket is support case #00444627

Thank you,

Nick

Hello, Not meaning to Hijack your post but I am having what seem like the same problem. All of my JMX Monitors worked last week on friday the server team enabled SSL and bam they are all unknown with a "Network connection failed. Cannot connect to JMX server... brent.weaver@ge.com

Have you enabled debug logging and checked the log i get this error:

2017-02-28 09:37:09,309 [STP Pool:41 Thread #1] [C5860] ERROR SolarWinds.APM.Probes.JMX.JmxCommunicationManager - Cannot connect to the server [bridgeUrl=http://localhost:9191/jmxbridge, serverUri=service:jmx:rmi:///jndi/rmi://xxx.xx.x.xx:8999/jmxrmi] Exception:System.Web.Services.Protocols.SoapException: Failed to retrieve RMIServer stub: javax.naming.CommunicationException [Root exception is java.rmi.ConnectIOException: non-JRMP server at remote endpoint]

0 Kudos
Level 10

Guys thanks for the info. I am unable to browse what mbeans are being exposed. I am able to get this info from jconsole on the remote poller at this site when I point to the JBOSS server. So it seems that it is SW that is unable to connect to the JBOSS server. I do I troubleshoot this connection without having to get a sniffer on.

0 Kudos

Have you tried running JConsole from the Orion server itself and connecting to the JBOSS remotely? It may be that you are not allowing remote JMX connections in JBOSS or that there is a firewall policy preventing access such as iptables.

JConsole is part of JDK.

The jconsole executable is in JDK_HOME/bin, where JDK_HOME is the directory where the JDK is installed.

See also this: Understanding Java Remote JMX - Initial Setup/Config Overview

0 Kudos
Level 12

You are right, that monitoring of JMX via SolarWinds Agent is not supported.

Polling of JMX is done from Orion poller via service called "SolarWinds JMX Bridge" - that is some bridge, which connect world of Java mBeans with world of Microsoft .NET which is propulsion of SolarWinds Orion platform.

Please, could you provide more details -  which version of JBoss/WildFly ran on your servers you try to monitor?

Did you try to assign directly some application template or you tried to configure JMX monitor using wizard?

If you were able to connect via JConsole then here is document which describes how to setup the same monitoring using JMX Monitor - Configuring and Integrating JMX.pdf

As a quick update, the JMX Component Monitor is supported on the Linux Agent today.

aLTeReGo​ I have a question in regards to the Linux Agent and JMX.

Does the JMX Bridge talk with the agent to get the metrics locally? We would like to monitor JMX on a Linux server in the cloud, but the cloud server will not have any public IPs. We would set it up as agent initiated communication. The Orion polling engine would not be able to access the jmx port as it wouldn't be exposed.

0 Kudos

The Linux agent does not make use of the JMX Bridge Service. All JMX queries run locally through the agent itself.

Level 11

See if these help you...

SAM AG - JMX search results:

SolarWinds Online Help

Thwack post from years past:

JBoss (JMX)