When trying to start the JMX Bridge Service after adding SSL encryption params to the ini, it fails with the error "Could not create the Java virtual machine"
Solarwinds documentation states:
If SSL is enabled on a target server, include parameters to indicate KeyStore and TrustStore locations in the JMX Bridge config file, SolarWinds\Orion\APM\jmxbridge\jsl\jsl.ini. (note that this file is actually jsl64.ini now)
I found a Thwack article (link at bottom) that showed how to modify the file and used it to create the ini file below.
Modified ini file
[defines]
APM_HOME =C:\Program Files (x86)\SolarWinds\Orion\APM\
PATH= %PATH%
[service]
appname = SolarWinds JMX Bridge
servicename = SWJMXBridgeSvc
displayname = SolarWinds JMX Bridge
servicedescription = SolarWinds JMX Bridge Service
stringbuffer = 16000
starttype=auto
loadordergroup=someorder
useconsolehandler=false
stopclass=com/solarwinds/jmxbridge/Service
stopmethod=stop
stopsignature=()V
[java]
jrepath=%APM_HOME%\..\openjdk\16
params = 9
param00 = --illegal-access=permit
param01 = -cp
param02 = %APM_HOME%\jmxbridge\SolarWinds.JMX.Bridge.jar;%APM_HOME%\jmxbridge\lib\log4j_1.2_api_2.14.0.jar;%APM_HOME%\jmxbridge\lib\log4j_api_2.14.0.jar;%APM_HOME%\jmxbridge\lib\log4j_core_2.14.0.jar;%APM_HOME%\jmxbridge\lib\wlclient.jar;%APM_HOME%\jmxbridge\lib\wljmxclient.jar;%APM_HOME%\jmxbridge\lib\javax.xml.soap-api.jar;%APM_HOME%\jmxbridge\lib\jaxb-api.jar;%APM_HOME%\jmxbridge\lib\jaxws-api.jar;%APM_HOME%\jmxbridge\lib\jsr181-api.jar.jar;%APM_HOME%\jmxbridge\lib\gmbal-api-only.jar;%APM_HOME%\jmxbridge\lib\ha-api.jar;%APM_HOME%\jmxbridge\lib\javax.activation-api.jar;%APM_HOME%\jmxbridge\lib\axb-core.jar;%APM_HOME%\jmxbridge\lib\jaxb-impl.jar;%APM_HOME%\jmxbridge\lib\jaxws-rt.jar;%APM_HOME%\jmxbridge\lib\management-api.jar;%APM_HOME%\jmxbridge\lib\mimepull.jar;%APM_HOME%\jmxbridge\lib\policy.jar;%APM_HOME%\jmxbridge\lib\saaj-impl.jar;%APM_HOME%\jmxbridge\lib\stax-ex.jar;%APM_HOME%\jmxbridge\lib\streambuffer.jar;%APM_HOME%\jmxbridge\lib\javax.annotation-api.jar;%APM_HOME%\jmxbridge\lib\JBoss-7.4\jboss-cli-client.jar
param03 = -Denv.allusersprofile=%ALLUSERSPROFILE%
param04 = -J-Djavax.net.ssl.trustStore="C:\Program Files (x86)\SolarWinds\Orion\APM\cert\truststore.jks"
param05 = -J-Djavax.net.ssl.trustStorePassword=*PassowrdRemoved*
param06 = -J-Djavax.net.ssl.keyStore="C:\Program Files (x86)\SolarWinds\Orion\APM\cert\itchiw77.jks"
param07 = -J-Djavax.net.ssl.keyStorePassword=*PassowrdRemoved*
param08 = com.solarwinds.jmxbridge.Service
Verified the ability to connect using JConsole command:
jconsole -J-Djavax.net.ssl.trustStore="C:\Program Files (x86)\SolarWinds\Orion\APM\cert\**removed**.jks" -J-Djavax.net.ssl.trustStorePassword=*removed* -J-Djavax.net.ssl.keyStore="C:\Program Files (x86)\SolarWinds\Orion\APM\cert\**removed**.jks" -J-Djavax.net.ssl.keyStorePassword=*removed*
Other troubleshooting steps:
- updated our installation to 2020.2.6 and still have the same error.
- Tried the Jboss 1.1.1 and WildFly 8.2 included in the installation
- adjusted the string buffer from 16000 to 32000
Supporting lLinks
https://documentation.solarwinds.com/en/success_center/sam/content/sam-configuring-java-applications-servers-for-jmx-sw3397.htm
https://thwack.solarwinds.com/product-forums/server-application-monitor-sam/f/forum/49378/apm-jmx-connection-via-ssl