2012-10-26 44 views
1

方案管理懸浮/脫水實例。消息正確傳輸。重新部署業務流程時

在某個時候,在編排中發現一個錯誤,導致消息掛起。編排必須進行修復和重新部署。

問:

因爲你不能redploy懸浮情況下的業務流程,你會如何去留住這些郵件,終止的情況下,重新部署,再通過固定的業務流程重新發送這些消息?有沒有一個過程或工具呢?

回答

3

如果這個bug不需要大的修改 - 也就是說沒有新的編排,沒有新的模式,沒有新的提升的字段等,那麼短期的'黑客'是可能的,即只需重新安裝固定的MSI(和GAC)在您的服務器上,然後重新啓動主機實例(使用NLB(如果適用))(即不將MSI導入BizTalk)。

然後,您應該可以恢復任何暫停(可恢復)的orchs。然後,在不太繁忙的時間安排一些停機時間,將您的應用程序部分停止以防止新的Orchs啓動,等待所有運行的Orchs完成,然後導入固定的MSI(考慮使用修復程序碰撞Buggy orch assembly版本)

構建一個能夠審覈進出Biztalk的所有消息的自定義工具很有用,因此您可以重播它們。這將允許您終止orchs,重新安裝,然後重播。

+0

謝謝,會試試這個。您提到的客戶化工具是否會成爲biztalk應用程序特有的工具,或者這對BizTalk本身來說是通用的? – Jeremy

+1

@Jeremy AFAIK你仍然需要自己寫這個工具,但是這很簡單 - [Thiago的博客](http://connectedthoughts.wordpress.com/2008/04/02/3-ways-of-programatically-從biztalk-tracking-database /中提取消息體)討論了從DtaDB或歸檔中提取跟蹤消息的不同方式(它們是壓縮的,大消息是分片的)。 FWIW我們在清除之前使用DtaTB上的SQL版本。 – StuartLC

1

您也可以修復這個orchstration,並在構建它的同時增加程序集的版本。這樣您可以並行部署業務流程。部署更新的版本化的Orchstration後,您可以取消列出現有的版本。