正常关闭JBoss应用程序

xriantvc  于 2022-11-08  发布在  其他
关注(0)|答案(2)|浏览(202)

我正在寻找一种方法来优雅地处理JBoss(Wildfly AS 8.2)的关闭。这将意味着所有当前请求都得到服务,Web应用程序停止接收进一步的请求。我发现这可以通过应用服务器的version 9中的命令行来实现-

./jboss-cli.sh --controller=remoting://<host>:<port> 
--connect --command=:shutdown(timeout=t)

使用此JBoss可以在t秒内正常处理所有请求,并正常关闭(这需要从版本8升级到版本9)。
一种可能的方法是在Java应用程序中处理此问题,方法是维护活动请求的计数,并等待此计数到达0,直到超时,然后退出,基本上复制了上述功能。
我需要远程关闭webapp/JBoss,所以我们正在寻找一个基于JMX(Java管理扩展)的解决方案。JBoss是否可以通过JMX或任何其他技术公开任何这样的操作来正常关闭?
PS-Ctrl-Ckill命令无法正常关闭JBoss

jdzmm42g

jdzmm42g1#

JBoss EAP 6/7及更高版本允许通过CLI正常关机,甚至:
信号SIGHUPSIGINTSIGTERM都触发JBoss 7/6应用服务器的正常关闭,这些信号分别是命令kill -1 $PID、kill -2 $PID(或control+c)和kill $PID。
https://access.redhat.com/solutions/18601

wgeznvg7

wgeznvg72#

您可以远程使用Jboss cli,就像您在控制器参数中传递的URL所显示的那样。您甚至可以使用“REST”API来执行它。应该可以从JMX中关闭。

相关问题