尝试在消息通过编排之前将其捕获到文本或 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=],请检查过滤器是否正确。老实说,我认为您的过滤器不正确。
我正在解决外发邮件中缺少两个 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=],请检查过滤器是否正确。老实说,我认为您的过滤器不正确。