带有需要重新加载命令的 Jboss EAP 6 CLI 脚本

Posted

技术标签:

【中文标题】带有需要重新加载命令的 Jboss EAP 6 CLI 脚本【英文标题】:Jboss EAP 6 CLI Script with commands that require reload 【发布时间】:2016-11-16 06:28:12 【问题描述】:

我正在为 JBoss EAP 6 编写一个 cli 脚本(只是 .bat 文件中的一堆命令)。

现在我遇到了相互依赖的命令的问题,前者将服务器设置为“需要重新加载”状态。

例如:

    第一个命令:删除默认数据源ExampleDS。结果:成功,服务器处于“需要重新加载”状态 第二条命令:删除 h2-driver(默认数据源需要)。结果:失败,因为服务器尚未重新启动。

我尝试在两者之间放置一个reload 命令,但在执行第二个命令时似乎服务器没有完全启动。结果仍然失败,尽管如果我在几秒钟后尝试它,它会起作用。

/subsystem=datasources/data-source=ExampleDS:remove
reload
/subsystem=datasources/jdbc-driver=h2:remove

有什么建议可以让 CLI 等到 JBoss 再次完全启动?

【问题讨论】:

【参考方案1】:

尝试将这些命令批处理在一起,并在运行批处理后重新加载。例如:

batch
/subsystem=datasources/data-source=ExampleDS:remove
/subsystem=datasources/jdbc-driver=h2:remove
:reload
run-batch

另一个选项是运行服务器以在配置时以admin-only 模式启动服务器。在这种情况下,您应该需要 reload 命令,但如果确实如此,请确保在完成服务器配置之前使用 :reload(admin-only=true)

%JBOSS_HOME%\bin\standalone.bat --admin-only
rem Wait until server is started, then execute the CLI commands
%JBOSS_HOME%\bin\jboss-cli.bat -c --commands="/subsystem=datasources/data-source=ExampleDS:remove,/subsystem=datasources/jdbc-driver=h2:remove"

【讨论】:

以上是关于带有需要重新加载命令的 Jboss EAP 6 CLI 脚本的主要内容,如果未能解决你的问题,请参考以下文章

如何更新jboss EAP -6.2中的JSP / JS而无需重新启动或重新部署构建

带有 Infinispan 和 JBoss EAP 7.0.6 的休眠 L2C 不工作

带有 websocket 和 stockjs 的 JBOSS eap 6.3 beta - 使用 spring 框架的 stomp.js

jconsole 未检测到 jboss eap 6.1

Jboss EAP 7 - REST API客户端的动态SSL身份验证

Jboss (6.4 EAP) 到 WebSphere (7.x)