2013-11-14 21 views
2

在傳統的ASP中,如果頁面遇到未捕獲的異常並在提交/回滾之前停止,Connection事務會發生什麼?如果ASP頁意外退出,連接事務會發生什麼?

例如:

conn.BeginTrans 

a = 0/0 

conn.CommitTrans 

看到,因爲交易過程中,是否會被中止或承諾?或者,當連接返回到連接池時,連接會保持事務嗎?

回答

3

要返回到連接池,隱式或顯式連接應視爲關閉。連接關閉時掛起的任何事務都將回滾。

但是當連接被認爲是活動的,數據庫中所需的資源/鎖仍然會被保留。

EDIT - 從位於由暗影嚮導信息(謝謝你)相對於ADO連接對象:here

關閉連接對象,而存在於 打開記錄對象的連接回滾任何未決的改變在所有Recordset 對象。在事務處理過程中顯式關閉Connection對象(調用Close方法)會生成一個錯誤。如果 Connection對象超出範圍,而交易是在 進步,ADO自動回滾事務

+0

聽起來很合理,但是你有沒有官方消息證實了這一點? –

+0

來自MS ADO SDK:「如果在事務處理過程中Connection對象超出範圍,ADO會自動回滾事務。」 –

+0

好的,你最好鏈接到,並把報價,使您的答案更可靠和完整。 :) –

相關問題