如何将信封架构中的任何元素发布到 MessageBox

发布于 2024-12-10 20:41:16 字数 264 浏览 0 评论 0原文

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

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

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

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

I have an envelope message (EM), in this EM there some elements which are promoted on the context (for routing) and there is one Any element (called Payload) holding the actual schema instance for further use (other orchestrations are subscribing to that Payload instance).

This is a generic service (WCF, request-response) receiving the request message, returning a response message (having some elements of the request and with a new generated unique transaction ID) and a fault message (when applicable).

The Payload must be published on the MessageBox (direct binding) with some of context properties of the EM.

How can this be done most effectivly ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

何必那么矫情 2024-12-17 20:41:16

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

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

Do you know about how to process envelope schemas using an xml disassembler component inside a receive pipeline? It is not clear from your question if you have tried this or not or if this is even the challenge you are facing.

If not then read here: http://msdn.microsoft.com/en-us/library/aa546772(v=BTS.20).aspx

二手情话 2024-12-17 20:41:16

吗?

  1. 我可以确认WCF 客户端发送一条与信封架构匹配的消息
  2. 您希望将信封架构分批到包含在负载处理编排中的一条或多条负载消息中。
  3. ?您是否需要等到所有 Payload 消息都处理完毕后才向 WCF 客户端返回成功/失败响应(即响应取决于 Payload 消息的完成情况)。

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

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

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

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

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

Can I just confirm

  1. WCF client sends a message matching the Envelope Schema
  2. You wish to debatch the Envelope Schema into one or more Payload messages contained inside for the Payload processing orchestration.
  3. ? Do you need to wait until all Payload messages are processed until you respond back to the WCF client with a success / fail response (i.e. the response is dependent on the completion of the Payload messages).

If you don't need point 3) then your WCF orchestration can just send a 'yes' message back to the WCF client without worrying about what happens to your payload.

The standard XMLReceive on your WCF Receive location should be able to debatch the message automagically as long as it recognises it as an Envelope schema, i.e. contains

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

However, if you do need point 3 a problem I can see is that because you are using WCF request-response, is that the client is going to want a synchronous response back depending on the Payload processing. It would be difficult to do this using the standard envelope debatching as you would need to correlate the progress and results of your payload processing back to your WCF orch - instead, you might just keep your outer (Envelope) schema as non-envelope, and use a custom receive pipeline in your WCF orch to split out the messages and then loop through each and call your payload processing Orchestration.

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文