2
在傳統的ASP中,如果頁面遇到未捕獲的異常並在提交/回滾之前停止,Connection事務會發生什麼?如果ASP頁意外退出,連接事務會發生什麼?
例如:
conn.BeginTrans
a = 0/0
conn.CommitTrans
看到,因爲交易過程中,是否會被中止或承諾?或者,當連接返回到連接池時,連接會保持事務嗎?
在傳統的ASP中,如果頁面遇到未捕獲的異常並在提交/回滾之前停止,Connection事務會發生什麼?如果ASP頁意外退出,連接事務會發生什麼?
例如:
conn.BeginTrans
a = 0/0
conn.CommitTrans
看到,因爲交易過程中,是否會被中止或承諾?或者,當連接返回到連接池時,連接會保持事務嗎?
要返回到連接池,隱式或顯式連接應視爲關閉。連接關閉時掛起的任何事務都將回滾。
但是當連接被認爲是活動的,數據庫中所需的資源/鎖仍然會被保留。
EDIT - 從位於由暗影嚮導信息(謝謝你)相對於ADO連接對象:here
關閉連接對象,而存在於 打開記錄對象的連接回滾任何未決的改變在所有Recordset 對象。在事務處理過程中顯式關閉Connection對象(調用Close方法)會生成一個錯誤。如果 Connection對象超出範圍,而交易是在 進步,ADO自動回滾事務
聽起來很合理,但是你有沒有官方消息證實了這一點? –
來自MS ADO SDK:「如果在事務處理過程中Connection對象超出範圍,ADO會自動回滾事務。」 –
好的,你最好鏈接到,並把報價,使您的答案更可靠和完整。 :) –