此问题与Websphere MQ有关。我有一个要求,我必须根据消息的内容路由消息。
我知道WMQ订阅中选择器的概念,并且我已经成功地基于消息头(使用MQRFH2)这样做了
我现在需要根据有效负载过滤消息,这些消息是XMLNSC并且具有与之关联的有效命名空间。
例如:
<?xml version="1.0" encoding="UTF-8"?>
<ns0:test xmlns:ns0="abc.com/is/2009/schemas/envelope/">
<flag>Y</flag>
</ns0:test>
如果仅在标志为“Y”时我必须接受消息,那么如何在我的订阅中设置选择器?
请告诉我。 提前谢谢。
答案 0 :(得分:1)
任何WebSphere MQ选择信息都必须位于消息头或消息属性中。 WMQ被调整为尽可能快地将消息移动到尽可能远的下游,并且除了传递它们之外不对消息有效负载做任何事情。基于消息体中的数据的任何功能都需要IBM的ESB解决方案之一,例如IIB,否则编写代码来检查有效负载并采取适当的措施。
如果可能,创建消息的应用程序应将选择字段放入消息属性中。如果这是不可能的,程序可以拦截消息,评估有效负载并设置属性,然后重新排队消息。