我正在實現分佈式事務的2階段提交(使用2個數據庫)。我通過將網絡電纜拉到桌面計算機上,然後將其插回來模擬DB服務器連接丟失。但是,這會導致事務在數據庫連接對象丟失時執行「回滾」時失敗。有沒有一種方法可以檢索丟失的數據庫連接對象,或強制應用程序在特定時間段後嘗試重新連接到同一個連接。 我正在使用DB2和Websphere 6.1作爲應用程序服務器。數據庫連接通過jndi查找。使用Atomikos作爲事務管理器。連接池:檢索丟失的數據庫連接
通常情況下,在數據庫崩潰的情況下,實現兩階段提交的應用程序如何恢復(回滾)?恢復是應用程序的責任還是交易經理應該這樣做?
謝謝安德烈亞斯..我會測試這個。 但是有沒有其他方式可以在不更改數據庫服務器設置的情況下進行測試?我大多確信這個值將被修改用於生產服務器。我如何確保恢復呢? – Andy 2012-03-23 15:44:57
嚴格地說,「恢復」意味着解決有問題的交易,即分佈式交易,其中至少有一個參與者已被要求準備交易,並非所有參與者都已提交/回滾。如果在DB2事務準備好之前(在您的方案中可能出現這種情況)發生故障,則不需要恢復(對於該資源),但鎖將保持到DB2檢測到連接中斷。如果事務已經準備好,那麼無論使用哪個連接,恢復都應該成功。 – 2012-03-24 17:09:31
感謝您解釋它..現在我已經開始了。我想鎖定在DB是由於DB2服務器設置,而不是由於應用程序...讓我看看我可以做的改變這個笏。我也懷疑這筆交易沒有作爲其回滾的原因,但我會爲此發佈一個新問題。 – Andy 2012-03-26 15:11:12