如何设置JBoss 5.1.0.GA来运行多个实例?

有没有人有任何经验或build议,在同一台机器上有1个网卡设置多个JBoss 5.1.x实例?

这是我做的:

  1. 将JBoss 5.1.0.GA安装到c:\ myjboss 1.5。 我将server / default目录复制到server / ports-01和server / ports-02,以便他们拥有自己的configuration。 我是否正确假设?
  2. Ran 。\ run.bat -c ports-01
  3. Ran 。\ run.bat -c ports-02

此时有2个实例,但由于可能存在几个端口冲突,所以第二个实例的加载不正确。 例如:对于两个实例,http端口最终都是8080,它从C:\ myjboss \ server \ all \ conf \ bindingservice.beans \ META-INF \ bindings-jboss-beans.xml文件中的第49行获得。 在服务器加载之前,它清楚地从同一个文件中的#63行获得值。 我不知道为什么它从第49行和第63行的另一部分获得了端口configuration的一部分。 困惑。

我也尝试过: 。\ run.bat -Djboss.service.binding.set = ports-01 -c ports-01 ,它没有什么区别。

任何想法,我做错了什么?

我有自己的工作。 答案是这些命令:

。\ run.bat -Djboss.service.binding.set = ports-01 -c ports-01

。\ run.bat -Djboss.service.binding.set = ports-02 -c ports-02

此外,我不得不将服务器/默认复制到2个新的目录,称为服务器/端口01和服务器/端口02 …

然后,在server \ ports-01 \ conf \ bindingservice.beans \ META-INF中,我必须删除对实例port-02,ports-03和“default”的引用。

然后,在server \ ports-02 \ conf \ bindingservice.beans \ META-INF中,我必须删除对实例port-01,ports-03和“default”的引用。

然后,最后,我从服务器目录的默认安装中删除了“标准”,“web”和“默认”目录。

然后,我用上面的命令运行了两台服务器,并且开箱即用

此外,这里是一个batch file来运行群集,而不是单独的实例:

@echo off start .\bin\run.bat -c ports-01 -g MyLocal -u 239.255.100.100 -b 127.0.0.1 -Djboss.messaging.ServerPeerID=1 -Djboss.service.binding.set=ports-01 @echo Wait until first server finishes starting and then hit @echo any key to start the second server in the cluster... pause start .\bin\run.bat -c ports-02 -g MyLocal -u 239.255.100.100 -b 127.0.0.1 -Djboss.messaging.ServerPeerID=2 -Djboss.service.binding.set=ports-02 

您还可以configuration多个重命名run.bat的jboss实例,并创build一个运行-c instance-name的新run.bat。 然后,您将能够启动Jboss作为服务并正确调用run.bat。

除了使用BindingManager之外,您还可以为networking接口分配多个地址(至less在控制networking的情况下),并让每个jboss实例使用自己的地址(使用-b选项run.(bat|sh) )。 在本地环回接口(127.0.0.1,127.0.0.2,…)上也是可以的。

快速跟进Mafro关于多个IP地址的文章 – 取决于您希望在单个主机上运行多less个实例,多个IP地址scheme可能是最稳定的。 一旦你开始在单个主机上获得4-5个JBoss实例(也取决于你的应用中启用了哪些J2EE服务,如果有的话),当你使用“ports”实现时,你可能会很快遇到端口冲突的问题。

多个IP地址将允许您在默认端口上运行所有J2EE和JBoss服务,并避免在运行多个实例时遇到的许多“search端口冲突情况”。

根据JBoss维基百科的最后说明,使用多个IP地址是“首选解决scheme”,特别是在生产环境中 – http://community.jboss.org/wiki/ConfiguringMultipleJBossInstancesOnOnemachine 。 请参阅该链接,了解使用绑定pipe理器configurationJBoss服务和应用程序以避免冲突的其他资源。

如果您不使用RMI或远程处理,实际上可以调整jboss的configuration以仅使用一个端口。 做(大量的configuration文件)是非常烦人的工作,但如果你真的需要的话可能。

要做到这一点: – 删除所有你不使用的服务 – 如果你不能删除一个调用者,你可以设置transport =“local”,以便在内存传输中使用 – 设置剩余服务的端口为 – 1 – 设置以下系统属性以禁用arjunapipe理端口:com.arjuna.ats.arjuna.coordinator.transactionStatusManagerEnable = NO com.arjuna.ats.arjuna.recovery.recoveryListener = NO

configuration文件你绝对需要改变: – jboss-service.xml – 禁用所有你不需要的服务 – legacy-invokers-service.xml(如果可能,删除旧服务) – messaging / messaging-bisocket-service.xml:change运输到当地而不是bisocket

将会有更多的文件。

剩下的就是一个jboss,它监听web端口和另一个随机select的端口,我还不知道这个端口的用途。 这将使在一台主机上运行多个实例变得简单。