有没有人有任何经验或build议,在同一台机器上有1个网卡设置多个JBoss 5.1.x实例?
这是我做的:
此时有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的端口,我还不知道这个端口的用途。 这将使在一台主机上运行多个实例变得简单。