JBoss EAP 7.0 检查启动

JBoss EAP 7.0 check startup

我想检查我的 JBoss EAP 7 是否通过 jboss-cli 启动。

使用 JBoss EAP 6 我可以使用以下命令

jboss-cli.bat -c --commands="read-attribute server-state"

服务器启动时,响应为 starting。服务器启动成功后,响应为running.

迁移到 JBoss EAP 7.0 后,同样的命令 returns 在服务器启动时显示以下消息。 Failed to connect to the controller: Timeout waiting for the system to boot. 当服务器成功启动时,返回通常的消息 running

我的问题是:为什么 jboss-cli 在启动之前无法连接到服务器?

在EAP7.x和EAP 6.3.0或更高版本中,您可以配置jboss.as.management.blocking.timeout系统属性来调整等待服务容器稳定的超时(秒)。 通过 CLI 连接后尝试设置此参数。

从 EAP 6.3.0.ER8 开始,jboss.as.controller 中有一个新的 class:BlockingTimeout。此class 加载系统属性 jboss.as.management.blocking.timeout 的值或默认为300(秒)。 Note: This property is not a timeout per deployment but a timeout on container stability and if jboss.as.management.blocking.timeout is reached during startup then all applications will be undeployed and the container shutdown. The reasoning behind this is that having a half-working server is potentially dangerous as you may not notice major failures. 因此,如果您的应用程序无法在给定的超时值内加载,CLI 将抛出错误Failed to connect to the controller: Timeout waiting for the system to boot

jboss-cli.sh --connect --controller=IP:PORT --timeout=40000 将超时值配置为大于服务器启动所需的时间。

实际命令行是 ./jboss-cli.sh --connect command=":read-attribute(name=server-state)"