Ibm mq 在多个主题字符串上发布消息(IBM集成总线)

Ibm mq 在多个主题字符串上发布消息(IBM集成总线),ibm-mq,ibm-integration-bus,Ibm Mq,Ibm Integration Bus,我有一个场景,在这个场景中,我将使用MQ输入节点接收消息,根据消息中存在的源系统的值,我需要形成主题字符串并发布消息。这就是我的流程的样子: MQInput->Compute->Publication 我使用以下方法填充主题的值: 设置OutputRoot.Properties.Topic='TopicName/'| | sourceName 在消息包含一个源系统的情况下,这可以正常工作 然而,消息可能包含多个源系统。是否可以使用上述命令在多个主题字符串上发布消息?(类似这样的) 设置Outpu

我有一个场景,在这个场景中,我将使用MQ输入节点接收消息,根据消息中存在的源系统的值,我需要形成主题字符串并发布消息。这就是我的流程的样子:

MQInput->Compute->Publication

我使用以下方法填充主题的值: 设置OutputRoot.Properties.Topic='TopicName/'| | sourceName

在消息包含一个源系统的情况下,这可以正常工作

然而,消息可能包含多个源系统。是否可以使用上述命令在多个主题字符串上发布消息?(类似这样的)

设置OutputRoot.Properties.Topic='Topic/'| | sourceName1

设置OutputRoot.Properties.Topic='Topic/'| | sourceName2


感谢您的建议。

您应该使用不同的主题字符串集从Compute节点传播两条单独的消息

通过使用propagate ESQL语句,可以在不返回的情况下传播消息。 因此,您的代码应该如下所示:

<Create message in OutputRoot>

SET OutputRoot.Properties.Topic = 'TopicName/' || sourceName1;
PROPAGATE DELETE NONE;

SET OutputRoot.Properties.Topic = 'TopicName/' || sourceName2;
RETURN TRUE;

设置OutputRoot.Properties.Topic='TopicName/'| | sourceName1;
传播删除无;
设置OutputRoot.Properties.Topic='TopicName/'| | sourceName2;
返回TRUE;

在属性中,每个属性只能设置一个值

要做您想做的事情,您必须生成多条消息,这是通过在ESQL中使用上面建议的PROPAGATE关键字来完成的