尝试在消息通过编排之前将其捕获到文本或 xml 文件中

Trying To Capture a message into a text or xml file before it goes through orchestration

我正在解决外发邮件中缺少两个 XML 元素的问题。

我有以下比较简单的Orchestration:

Receive Port  -> Orchestration -> Send Port (IBM MQ)

我想在消息通过业务流程之前对其进行检查,以查看传入消息是否有问题。为此,我创建了一个额外的发送端口,使用 FILE 类型的传输(我称之为 DefectTroubleshootingSendPort),以及 PassThruTransmit 用于发送管道。

此端口的 URI 是: C:\temp\Defect986\%MessageID%.xml

我将此发送端口的过滤器设置为

BTS.ReceivePortName == "OrderManagement.MembershipActivityExport.ReceivePort"

我将这个新端口和原来的 MQ 发送端口添加到发送端口组,并将该组绑定到编排的出站逻辑端口。

即使在这之后,我也根本看不到临时文件被写入。但是,消息会转到 MQ。

我这样做是否正确,或者是否有更好的方法来捕获传入消息?我这里还需要过滤器吗?

您可以简单地停止编排,但保持登记。当收到一条消息时,将生成一个编排实例,但处于暂停(可恢复)状态,允许您查看其消息。

让你做你想做的事:

  • 在传入接收端口上启用跟踪。您可能想要使用 XmlReceive,因为 PassThruReceive 管道跟踪可能默认未启用。
  • 启用后,检查 Tracked Message Events 中心页面并查看跟踪了哪些属性。您可以找到接收端口 name/property 是否已写入那里的消息,并且(重要!)如果它被提升。

如果提升了接收端口[​​=24=],请检查过滤器是否正确。老实说,我认为您的过滤器不正确。