簡體   English   中英

如何使用代碼添加自定義BizTalk持久點?

[英]How to add custom BizTalk persistent points using code?

是否可以使用.NET代碼在BizTalk Orchestration流中添加持久點? 我進行了搜索,但沒有找到任何有用的信息。 請幫助,有人嗎?

在遇到原子作用域時將代碼包裝起來,就會創建一個持久點。

這就是為什么除非您確實需要原子范圍,否則通常認為不建議使用原子范圍的原因,因為持久性是一種成本,並且會帶來復雜性。

在理想的世界中,業務流程應設計為冪等的,因此不需要持久性-業務流程加載一次,然后保留在內存中,直到完成為止(裸機脫水)。

如果編排失敗,那么它應該可以作為一個整體重播。 但是,這並不總是可能的,因此需要持久性點。

但是我認為這是不好的做法。

我將在長期運行的過程中創建持久性需求分類為有時不可避免的不良設計。

想象一下,作為您業務流程的一部分,您必須調用具有非冪等API的外部資源。 一個很好的例子是一個Web服務,它期望呼叫以某種順序到達。 在這種情況下,您將不得不在服務調用之前和之后保持業務流程的狀態,否則,如果您的流程出現故障,然后繼續運行,則可能會以陳舊或錯誤的調用數據再次調用服務。 如果服務調用本身失敗,那么您也將不得不編寫復雜的補償邏輯來確定再次調用該服務是否安全。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM