承繼上篇【COM+的交易(Transaction)讓商業層確保資料的完整性】說明了COM+支援異動的方式與特性。本篇要介紹如何讓COM+執行較長時間的異動。
緣起
承繼上篇【COM+的交易(Transaction)讓商業層確保資料的完整性】說明了COM+支援異動的方式與特性。本篇要介紹如何讓COM+執行較長時間的異動。
情境說明
一般當我們要執行較長時間批次作業(例如月底結帳作業),可能會處理大量、複雜的商業邏輯,而且為了讓整個過程能夠確保資料的完整性,會將整個過程包在一個Transaction中執行。讓中間萬一有問題時,可以把中間過程全部倒帶回去,修正錯誤後,重新執行。
而COM+預設的Transaction Timeout時間並不長,只有60秒,一個【月報批次】的過程可能是好幾個小時。此時就必須延長COM+的Transaction
設定方式
元件TimeOut設定的單位是一顆元件(一個Class),設定方式步驟如下:
- 從元件服務找到您要設定的元件
- 在元件上按滑鼠右鍵→內容
- 點選【交易】→勾選【覆蓋全域交逾時值】→設定交易等待時間,單位為秒
- 交易等待時間預設為0,代表永遠不逾時(做到天荒地老),強烈的建議要設定一個適當的數字,以避免批次作業做到白天,影響白天正常工作。
如果可以將結帳過程分成階段性,例如6個階段,每個階段獨立戶不影響,則可以將結帳過程寫成Requires New(需要新增的),然後去呼叫他,這樣每個步驟都將是獨立的一個Transaction。
以下是簽名:
- 歡迎轉貼本站的文章,不過請在貼文主旨上加上【轉貼】,並在文章中附上本篇的超連結與站名【topcat姍舞之間的極度凝聚】,感恩大家的配合。
- 小喵大部分的文章會以小喵熟悉的語言VB.NET撰寫,如果您需要C#的Code,也許您可以試著用線上的工具進行轉換,這裡提供幾個參考
Microsoft MVP Visual Studio and Development Technologies (2005~2019/6) | topcat Blog:http://www.dotblogs.com.tw/topcat |