1

在 weblogic 中,可以在两个 JMS 消息队列之间创建一个消息桥。配置此网桥时,可以应用消息过滤器,以便网桥仅路由与过滤器匹配的消息。

是否可以使用 Websphere 实现相同的目标?

具体来说,我正在尝试实现这种情况。

我有一个接收消息的源队列。每条消息都将设置一个自定义 JMS 属性。我想将源队列上的消息转发到基于 JMS 属性及其值的单独队列。这很容易在 WLS 中使用带有过滤功能的消息桥进行配置。我怎样才能在 WAS 中做同样的事情?

谢谢萨维奥

4

3 回答 3

0

作为记录,我们最终在应用程序中编写了自己的路由算法,以确保将消息发送到每个客户端的单独队列。通过这种方式,我们独立于应用服务器实现,并且跨应用服务器的集成工作是相同的,即为每个集成客户端添加自定义队列。

简而言之,我们发布了一个必须设置的 JMS 自定义属性。使用已发布的约定,我们查找队列并将响应发送到队列。如果未设置该属性,则会创建一个默认队列来路由所有消息。如果设置了该属性,并且找不到队列,则会引发异常并停止处理。

这符合我们的目的。希望能帮助到你...

于 2013-02-24T02:18:47.923 回答
0

你需要使用SIB Mediation.

WAS 信息中心有一个名为编写路由中介的示例,这似乎是您所需要的。

在示例的底部有一个链接,what to do next该链接还解释了如何配置 WAS 以使用该中介。

于 2013-01-31T13:34:26.423 回答
0

如果不编写自定义代码(根据您对 Aviram 答案的评论),就不可能达到完全相同的效果,但仍然可以达到相同的效果;

您说“源队列”根据自定义 JMS 属性将消息分发到其他“单独的队列”。我假设您已配置 MDB(消息驱动 bean)来处理这些单独队列中的消息。

您可以使用 WebSphere 执行的操作是直接从“源队列”将消息分发到这些 MDB,而无需将它们过滤/分发到单独的队列。

这是通过使用JMS 消息选择器来管理的。您可以使用激活规范定义将所有 MDB 指向源队列,并为每个(每种类型的消息一个)MDB 定义一个与您在 WLS 中使用的匹配的 JMS 消息选择器。这样,每条消息仅被传递到过滤器与消息属性匹配的 MDB。这有效地将消息过滤/分发到 WLS 中的不同 MDB。

您可以在信息中心阅读有关配置消息选择器的详细信息(在 RAD 开发期间,或在部署时间/之后)。下面是一个报价,让您了解它的外观;

消息选择器

此属性确定用于选择消息驱动 bean 接收哪些消息的 JMS 消息选择器。例如:

JMSType='car' AND color='blue' AND weight>2500

选择器字符串可以引用 JMS 消息头中的字段和消息属性中的字段。消息选择器不能引用消息正文值。

于 2013-02-05T21:41:48.720 回答