在同一个VM中启动几个嵌入式HornetQ代理

时间:2014-06-06 09:03:26

标签: hornetq

有没有办法在同一个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

1 个答案:

答案 0 :(得分:2)

我们一直在我们的测试套件上这样做..

在Connection属性上,您可以在inVM属性中设置server-id。

连接器/接受器常量在后续服务器上将具有server-id = 1,2 ... n。

查看org.hornetq.core.remoting.impl.invm.TransportConstants