有没有办法在同一个VM中启动几个HornetQ嵌入式代理?例如,两个独立的应用程序在同一个进程中运行,并且完全不相关。
如果我尝试在已经运行的第二个EmbeddedJms
实例时注册,那么这就是我得到的
HQ221043:添加协议支持CORE server:HQ221003:尝试部署队列jms.queue.sampleQueue server:HQ221003:尝试部署队列jms.topic.sampleTopic 服务器:HQ224000:初始化失败 java.lang.IllegalArgumentException:HQ119062:已注册ID为0的Acceptor 在org.hornetq.core.remoting.impl.invm.InVMRegistry.registerAcceptor(InVMRegistry.java:36) 在org.hornetq.core.remoting.impl.invm.InVMAcceptor.start(InVMAcceptor.java:104) 在org.hornetq.core.remoting.server.impl.RemotingServiceImpl.start(RemotingServiceImpl.java:321) 在org.hornetq.core.server.impl.HornetQServerImpl.initialisePart2(HornetQServerImpl.java:1725) 在org.hornetq.core.server.impl.HornetQServerImpl.access $ 1400(HornetQServerImpl.java:170) 在org.hornetq.core.server.impl.HornetQServerImpl $ SharedNothingLiveActivation.run(HornetQServerImpl.java:2700) 在org.hornetq.core.server.impl.HornetQServerImpl.start(HornetQServerImpl.java:450) 在org.hornetq.jms.server.impl.JMSServerManagerImpl.start(JMSServerManagerImpl.java:485)
可以找到配置嵌入式代理的代码here
答案 0 :(得分:2)
我们一直在我们的测试套件上这样做..
在Connection属性上,您可以在inVM属性中设置server-id。
连接器/接受器常量在后续服务器上将具有server-id = 1,2 ... n。
查看org.hornetq.core.remoting.impl.invm.TransportConstants