2011-10-21 54 views
0

我有一個信封消息(EM),在這個EM中有一些元素在上下文中提升(用於路由),並且有一個任何元素(稱爲Payload)用於進一步使用的實際模式實例(其他業務流程正在訂閱該Payload實例)。如何發佈信封框中的任何元素

這是一個接收請求消息的通用服務(WCF,請求 - 響應),返回響應消息(包含請求的某些元素和新生成的唯一事務ID)和錯誤消息(適用時)。

Payload必須在MessageBox(直接綁定)上發佈EM的一些上下文屬性。

這怎麼做到最有效?

回答

0

可我只是確認

  1. WCF客戶端發送的消息相匹配的信封架構
  2. 要debatch信封架構成一個或多個有效載荷的消息包含在Payload處理業務流程中。
  3. ?您是否需要等到所有Payload消息處理完成,直到您用成功/失敗響應迴應WCF客戶端(即響應取決於Payload消息的完成)。

如果你不需要第3點),那麼你的WCF編排可以發送一個'是'消息回WCF客戶端,而不必擔心你的有效載荷會發生什麼。

標準XMLReceive你的WCF接收位置應該可以,只要自動將它識別爲一個信封架構debatch消息,即包含

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

然而,如果你確實需要點3個問題我可以看到,因爲您正在使用WCF請求響應,客戶端是否想要取回同步響應,具體取決於有效負載處理。使用標準信封辯論難以做到這一點,因爲您需要將有效負載處理的進度和結果關聯回WCF orch - 相反,您可能只需將外部(Envelope)架構保留爲非信封,並且在您的WCF orch中使用自定義接收管道來拆分消息,然後遍歷每個消息並調用您的負載處理編排。

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