如何将多个JBoss EAP 6.3实例作为Windows服务运行



我们正在将JBoss EAP 4.3基础设施迁移到EAP 6.3(独立)。我们目前通过拥有不同的服务器文件夹在每台机器上运行多个实例:

  • JBOSS_HOME\server\instance_1
  • JBOSS_HOME\server\instance_n

以及针对每个实例的一组不同的启动脚本:

  • JBOSS_HOME\bin\run_instance_1.bat;JBOSS_HOME\bin\service_instance_1.bat
  • JBOSS_HOME\bin\run_instance_n.bat;JBOSS_HOME\bin\service_instance_n.bat

通过这种方式,您可以从service_instance_X.bat.为每个实例定义SERVERNAME和SERVERIP

我面临的问题是,在EAP6.3上似乎找不到类似的机制。我得到的最接近的命令是:

JBOSS_HOMEbinstandalone.bat -Djboss.bind.address=%SERVERIP% -Djboss.bind.address.management=%SERVERIP% -Djboss.server.base.dir
=%JBOSS_HOME%%INSTANCENAME%

它完成了任务,但在将其作为服务运行时没有帮助。prunsrv有一个很有前途的选项,即++JvmOptions,您可以在服务安装时将-D和-X选项传递给JVM,但即使安装命令在添加了选项的情况下成功运行,它也会继续使用JBOSS_HOME\standalone作为JBOSS.server.base.dir启动。

我应该使用自定义service.bat、standalone.bat和standalone.conf.bat脚本吗?看起来是最好的方法,但迁移或修补可能会变得麻烦。

欢迎提出任何想法。

Sebastian

我使用了我提到的最后一个选项:custom service_instancename.bat、standalone_instancenname.bat和standalone-instancename.conf.bat。但我不得不编辑剧本的几个部分。当然不理想,但我没有其他选择。如果有人想出更好的主意,请分享。

最新更新