0

我正在创建一个使用来自远程服务器的消息的 EJB 模块;我正在使用这段代码:

@MessageDriven(mappedName = "jms/Topic", activationConfig =  {
@ActivationConfigProperty(propertyName = "addressList", propertyValue = "192.168.31.10" )
, @ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge")
, @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Topic")

}

它有效。现在我会从多个远程服务器接收;我在想这样的事情:

@ActivationConfigProperty(propertyName = "addressList", propertyValue = "192.168.31.10 , 192.168.31.11 , 192.168.31.12" )

但它不起作用。

什么是正确的方法?

4

2 回答 2

1

每个 MDB 都必须一次侦听一个资源。

作为一种解决方法,您可以尝试在部署描述符文件中配置它,其中将配置单个 MDB 以侦听多个远程主题。

摘自 MDB 的 Weblogic 文档:

如果您的应用程序需要一个 JMS 消费者来为来自多个队列或主题的消息提供服务,那么您必须使用标准 JMS 消费者,或者部署多个消息驱动的 bean 类。

于 2013-01-11T06:44:06.457 回答
0

您还可以创建多个 MDB-s,然后将它们的传入消息转发到同一个业务组件。所以你的 MDB-s 并不真正处理任何事情,只是收集消息。

于 2015-03-17T19:08:03.133 回答