0

我有一个信封消息(EM),在这个 EM 中,有一些元素在上下文中被提升(用于路由),并且有一个 Any 元素(称为 Payload)保存实际的模式实例以供进一步使用(其他编排正在订阅那个有效负载实例)。

这是一个通用服务(WCF,request-response)接收请求消息,返回响应消息(具有请求的一些元素和新生成的唯一事务 ID)和故障消息(如果适用)。

Payload 必须在带有 EM 的一些上下文属性的 MessageBox(直接绑定)上发布。

如何最有效地做到这一点?

4

2 回答 2

0

我可以确认一下吗

  1. WCF 客户端发送与信封架构匹配的消息
  2. 您希望将 Envelope Schema 分批成一个或多个 Payload 消息,其中包含用于 Payload 处理编排。
  3. ? 您是否需要等到所有 Payload 消息都处理完毕,直到您向 WCF 客户端返回成功/失败响应(即响应取决于 Payload 消息的完成)。

如果您不需要第 3 点),那么您的 WCF 编排只需将“是”消息发送回 WCF 客户端,而无需担心您的有效负载会发生什么。

WCF 接收位置上的标准 XMLReceive 应该能够自动分批消息,只要它将消息识别为信封模式,即包含

<b:schemaInfo is_envelope="yes" xmlns:b="somexmlns"/>
<b:recordInfo body_xpath="xpathtoroot"/>

但是,如果您确实需要第 3 点,我可以看到的一个问题是,由于您使用的是 WCF 请求-响应,客户端是否需要根据有效负载处理返回同步响应。使用标准信封分批很难做到这一点,因为您需要将有效负载处理的进度和结果关联回您的 WCF orch - 相反,您可能只是将外部(信封)架构保持为非信封,并且在您的 WCF orch 中使用自定义接收管道来拆分消息,然后遍历每个消息并调用您的有效负载处理编排。

http://mstecharchitect.blogspot.com/2008/12/debatching-biztalk-xml-messages.html

于 2011-10-21T14:30:04.857 回答
0

您知道如何在接收管道中使用 xml 反汇编组件来处理信封模式吗?从您的问题中不清楚您是否尝试过这个,或者这甚至是您面临的挑战。

如果没有,请阅读此处: http: //msdn.microsoft.com/en-us/library/aa546772 (v=BTS.20).aspx

于 2011-10-21T09:47:46.110 回答