2009-10-01 43 views
1

我認爲Framework 2.0中的System.Transaction類是一個很好的工具,設計良好,旨在簡化處理事務時的代碼。有沒有辦法使用System.Transactions連接池?

但是,(big但是),不可能使用這些類與多個連接到相同的數據庫(相同的連接字符串),而不促進分佈式事務。

http://social.msdn.microsoft.com/forums/en-US/adodotnetdataproviders/thread/3ce488eb-55a8-4535-adc7-c5b29a1523b5/

Multiple Connections With Same Connection String Under A Single Transaction, Elevated Transaction?

微軟正在努力解決這個問題,但同時¿人都知道一個可靠,簡單的解決方法,以允許連接池機制,同時保持使用System.Transactions的能力?可能嗎?

回答

1

不知道你想達到什麼目的:

  • 如果連接到你需要分佈式事務不同的數據庫。
  • 如果連接進入相同的數據庫,連接的打開可以在您的代碼中進行控制。爲什麼你打開很多連接,你可以發送連接對象作爲參數並重用它。

編輯:

我下面,這是最好的,因爲需要打開和關閉連接的意見達成一致。但是如果連接是事務的一部分,它將不會返回到池中,在這種情況下,您可以嘗試重用它。

+0

你說得對,我可以用一個連接。但是我的商業類與「連接池模式」一起工作。也就是說,他們「按需」打開連接,.NET Framework ADO類管理一個保持打開狀態的內部連接池。這種機制被廣泛使用並具有一些優點。 我想使用System.Transactions,但不必更改太多的代碼。 – 2009-10-01 11:56:28

+0

我已更新我的問題以澄清它。我在談論同一個數據庫。謝謝。 – 2009-10-01 12:04:17

+0

根據需要開放和關閉連接是最佳可伸縮性實踐。底層的池會考慮實際資源是否被清理或重用。 – 2009-10-01 12:06:26

相關問題