2014-01-21 52 views
1

我們有一個很大的&複雜的文件,需要很長時間來反彙編(比如說一個小時)。如果我們可以在離開接收管道時分離消息,並在文件完成之前立即啓動它們的行程,那將是非常好的。我可以告訴,這不是容易,但它可能嗎?源文件完成之前的BizTalk 2013開始消息處理?

回答

7

不是開箱即用的。管道拆卸是事務性的,因此,如您所見,整個交換都會被消除並立即提交到MessageBox。

下面是一些選項:

  1. 如果收到一個平面文件,其中每行是一個消息,使用SSIS將其加載到一個表,然後使用SQL適配器,通過輪詢出漏消息〜10次。
  2. 如果您收到一個複雜的平面文件或XML,你可以用eithr XmlDasm或FFDasm在自定義的拆裝器組件而不是返回的debatched消息到消息框,把它們somwhere人。 A)如果不需要訂購,文件系統很容易。 B)MSMQ將維護消息在文件中出現的順序。

我已經使用了這兩種方法,其中傳入的文件有100k到400k的記錄,它提供了更多的可管理的性能配置文件。

+0

非常有幫助,感謝 - 我們有一個非常複雜的FF格式,所以它不是一件容易的事來之前將其反彙編拆分。 你知道,如果有可能的反彙編或(甚至更好)管道內拆卸消息個人推到一個不同的接收端口或東西,它成爲在該點離散消息? –

+0

然後你想要選項#2。你可以從這裏開始:http://msdn.microsoft.com/en-us/library/aa560024.aspx。這真的很容易。在你實現GetNext的過程中,不斷調用base.GetNext並將返回的消息發送到其他地方,文件,MSMQ等。 –

+0

+1,我已經使用了選項2(對於文件)並且效果很好 – NDJ

相關問題