How to enable JMX in wildfly running in windows server 2016 - wildfly

I'm running wildfly in windows server. Need to setup JMX to monitor remotely
I have tried adding JMX settings in standalone.conf.bat file and opened firewall port, but still not able to monitor using jconsole
Environment:
Wildfly 23
Redhat 1.8.275
Windows Server 2016
Things i tried:
Added the following settings in standalone.conf.bat file in bin folder
set "JAVA_OPTS=-Xms64M -Xmx512M -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m" set "JAVA_OPTS=%JAVA_OPTS% -Djboss.modules.system.pkgs=$JBOSS_MODULES_SYSTEM_PKGS -Djava.awt.headless=true" set "JAVA_OPTS=%JAVA_OPTS% -Djboss.modules.system.pkgs=org.jboss.byteman,org.jboss.logmanager" set "JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=9010" set "JAVA_OPTS=%JAVA_OPTS% -Xbootclasspath/p:<JBOSS_HOME>\wildfly-23.0.1.Final\modules\system\layers\base\org\jboss\logmanager\main\jboss-logmanager-2.1.18.Final.jar -Xbootclasspath/p:<JBOSS_HOME>\wildfly-23.0.1.Final\modules\system\layers\base\org\wildfly\common\main\wildfly-common-1.5.4.Final .jar" set "JAVA_OPTS=%JAVA_OPTS% -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
Service started without errors and was able to monitor using jconsole as localhost , but not from remote
Port was exposed in firewall settings though
Clarification Needed
Do i need to disable default management port 9990 in standalone .xml file for this to work
but if thats the case i'm able to monitor using the jmx port in local
Any help or suggestions please
Thanks in advance

It worked for me with below settings at last. I was missing the below property
-Dcom.sun.management.jmxremote.rmi.port=<port#>
Complete Property looks like this
set "JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=<port#>-Dcom.sun.management.jmxremote.rmi.port=<port#>
-Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
Apart from this i setup the SSL for the wildfly
It worked for me
Thanks all

Related

Problem setting up some critical paths when I run Wildfly 20 as a service

I have a problem setting up some critical paths when I run Wildfly 20 as a service.
When I install (in "VM1") Wildfly in /home/myuser/ instead of /opt and NOT as a service and run it with the following, I am able to use the Admin console's "Test Connection" to connect to a Sybase SQL Anywhere database using the sajdbc4 driver.
cd ~/wildfly-20.0.1.Final/bin
export LD_LIBRARY_PATH=/home/myuser/wildfly-20.0.1.Final/modules/system/layers/base/com/sybase/main
export CLASSPATH=.:/home/myuser/wildfly-20.0.1.Final/modules/system/layers/base/com/sybase/main/sajdbc4.jar
./standalone.sh
LD_LIBRARY_PATH sets the path to the driver support files.
On the other hand, when I install Wildfly (in "VM2") exactly the same way as before except for installing into /opt and the extra steps to run Wildfly as a service as below, the Admin console's "Test Connection" fails with:
cd ~/wildfly-20.0.1.Final/bin
export LD_LIBRARY_PATH=/opt/wildfly-20.0.1.Final/modules/system/layers/base/com/sybase/main
export CLASSPATH=.:/opt/wildfly-20.0.1.Final/modules/system/layers/base/com/sybase/main/sajdbc4.jar
sudo systemctl start wildfly
2020-08-28 13:13:41,341 INFO [org.jboss.as.controller] (Controller Boot Thread) WFLYCTL0183:
Service status report WFLYCTL0184: New missing/unsatisfied dependencies: service jboss.jdbc-driver.sajdbc4_jar (missing) dependents: [service jboss.driver-demander.java:jboss/datasources/TestDB, service org.wildfly.data-source.TestDB]
I can run a simple Java test app on the "VM02" system that connects and dumps a database table with:
cd $HOME/Desktop
export LD_LIBRARY_PATH=/opt/wildfly-20.0.1.Final/modules/system/layers/base/com/sybase/main
export CLASSPATH=.:/opt/wildfly-20.0.1.Final/modules/system/layers/base/com/sybase/main/sajdbc4.jar
java sajdbc4DriverTest.java
This suggest ti me that all of the driver files are present at and the LD_LIBRARY_PATH location. Note that the launch of Wildlfly as a service uses the same paths.
Can anyone explain why Wildfly is ignoring the two paths I set prior to starting the service?
Thank you in advance.
Service environment variables are not set this way. And even if they were, the use of sudo changes to a new user with new environment variables.
Instead, if you installed Wildfly as documented in wildfly-20.0.1.Final/docs/contrib/scripts/systemd, add your environment variables in /etc/wildfly/wildfly.conf. Something more like:
# The configuration you want to run
WILDFLY_CONFIG=standalone.xml
# The mode you want to run
WILDFLY_MODE=standalone
# The address to bind to
WILDFLY_BIND=0.0.0.0
# Add Sybase native library dir
LD_LIBRARY_PATH=/opt/wildfly-20.0.1.Final/modules/system/layers/base/com/sybase/main
I don't feel that you need to set CLASSPATH but I don't think it'll hurt either.

Tomcat 7 remote debugging on EC2

I have a tomcat 7 instance running on EC2. The port that tomcat is running on is its default, 8080.
I wanna start tomcat in debug mode, so I started tomcat with the following command :
sudo service tomcat7 start -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n
I have 8000 port opened in my security group. But when I try to remote debug using eclipse, it gives me a Connection refused error. Any clue what I am doing wrong ?
Thanks..
I don't think that you can put the debug options as arguments to the service command.
Assuming you installed the standard tomcat7 package using yum, edit the file /etc/tomcat7/tomcat7.conf and add this line in it:
JAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"
Then restart the Tomcat service.

Can't stop or restart JBoss AS 4.2.3 as a service in Fedora

i have a little issue with a Jboss AS 4.2.3 . I'm developing an application in Seam so i'm using Jboss as server. In the client company they have a Jboss AS 4.2.3 installed on Fedora and configured as a service, so it starts automatically on boot machine with PostgreSQL. So, if i run chkconfig --list i can see Jboss here as a service.
But the problem is when i try to restart, stop or start this service (i have root permissions) using this command:
service jboss stop/restart
But i don't know what happens that looks like it doesn't find the Jboss AS instance that's running because i get this message:
JOBSS_CMD_START = cd /opt/java/jboss/bin; /opt/java/jboss/bin/run.sh -c default
No JBossas is currently running
But it's running because if i enter localhost:8080 on a browser it loads the Jboss page. The server admin of the company doesn't know also why the service can't restart or stop or start and only i know that he followed this tutorial to install and configure JBoss AS:
thewiki4opentech.org/index.php/How_to_install_JBoss_AS_in_CentOS_/RedHat/_Fedora
Also, i tried with
/etc/init.d/jboss stop
And i get the same output. If i use
/opt/java/jboss/bin/start.sh -c default
It tries to start a second instance of Jboss AS but it gives me errors because is trying to use the same ports as already started Jboss instance.
And it's difficult to me because i'm connecting remotely using Teamviewer and i want to deploy an EAR but i can't because i can't restart the service to extract the ear. So i wanna ask you for help if you know why the Jboss AS that's running can't be stopped or started using service jboss stop.
As aditional info, i'm using the config to access Jboss apps from other machines (using 0.0.0.0) and the server has a static IP. The config of my hosts file is this:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.1.106 entertechserver.localdomain entertechserver
#::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
Regards.
Well, i think that i found the answer. The server admin copy the script run.sh to /etc/init.d/ but we saw that there's another script named jboss_init_redhat.sh that i think is optimized for redhat/fedora systems, so we used this script to copy to /etc/init.d/ and it works!! Now when i stop it gives me the next output:
JBOSS_CMD_START = cd /opt/java/jboss/bin; /opt/java/jboss/bin/run.sh -c default -b 0.0.0.0
waiting for processes to stop
Really i haven't seen the difference between both scripts yet but it will be intersting to take a look.
Regards.

A question about connection in jconsole

Good Day!
Friends, when I am runing a SampleTest (written in java by here, simulating a deadlock environmentn), Jconsole GUI response that being connecting to * (refer to SampleTest PID)
How can I use the jconsole to connect the application? thanks first:)
Run your application with following java properties
-Dcom.sun.management.jmxremote.port=9005
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
This provide the JMX port , Do the authentication disable , and ssl disable respectively.
Then go to directory where your jconsole jar resides.
command
Jconsole local_or_remote_host:JMX_port
This setting must let your jconsole to connect to the application.

jboss-5.1.0.GA auto start on boot

I was given the task of installing jboss-5.1.0.GA on a remote ubuntu 10.4 Lts server. With all those resources out there I was able to run jboss successfully but my problem was that I wasn't able to get auto start on boot work so that jboss would be running on the server.
I followed a couple of tutorials that said me create a separate user called jboss and to copy the jboss_init_Redhat.sh to the /etc/init.d/jboss (jboss home, java path ,jboss user and the binding to 0.0.0.0 is all set) and used /etc/init.d/jboss start
but I can't get to see the Jboss page at the Ip on a browser.,
If i do a ./run.sh -b 0.0.0.0 ==> the server is up ...
Can some body shed some light on this issue????
If you want to run JBoss AS on given interface using jboss_init_redhat.sh script look at these line:
#if JBOSS_HOST specified, use -b to bind jboss services to that address
JBOSS_BIND_ADDR=${JBOSS_HOST:+"-b $JBOSS_HOST"}
You should just define new variable before these line:
JBOSS_HOST="0.0.0.0"
You should also check shutdown command (especially when you run your server on some other address then 127.0.0.1 or 0.0.0.0), it should know how to find your server:
JBOSS_CMD_STOP=${JBOSS_CMD_STOP:-"java -classpath $JBOSSCP org.jboss.Shutdown --shutdown -s jnp://${JBOSS_HOST}:1099"}