MDB:动态选择器

时间:2011-07-28 17:46:15

标签: java-ee ejb-3.0 message-driven-bean

我有几个服务器运行相同的代码,但每个服务器处理特定的消息(它们按地理区域传播,必须处理与其区域相关的所有消息)

我想用一个队列和一个消息选择器来过滤不同的消息。

问题是:如何编写Java代码和部署计划,以便根据配置文件动态配置选择器,应用程序服务器的配置(Geronimo 2.2)

目标是在所有服务器上部署相同的EAR。

谢谢。

1 个答案:

答案 0 :(得分:0)

对于您想要实现的目标,Java代码不需要不同,它是应该从一台服务器更改为另一台服务器的部署计划。

要在所有服务器上部署相同的EAR,我会这样做:

  1. 为您想要的每个MDB配置写一个不同的openejb-jar.xml - 每个配置都具有相同的MDB(<enterprise-beans><message-driven>已定义,但具有不同的消息选择器。
  2. 将每个openejb-jar.xml直接放在EAR文件中的单独目录中。
  3. 使用外部提供的geronimo-application.xml部署EAR,引用具有<alt-dd>元素的特定配置:
  4. <module>
       <ejb>your_MDB.jar</ejb>
       <alt-dd>config1/openejb-jar.xml</alt-dd>
    </module>