我有兩個位於兩臺服務器的數據庫實例。我想創建一個應用程序,將數據插入到第一個數據中,然後在第二個數據上更新數據,如果其中一個失敗,我想要回滾所有操作。是否有可能在沒有啓用DTC的情況下使用兩個實例之間的事務?
數據庫服務器不啓用DTC/MSDTC。我厭倦了使用交易範圍,但沒有運氣。你們有什麼想法我該怎麼做?
我有兩個位於兩臺服務器的數據庫實例。我想創建一個應用程序,將數據插入到第一個數據中,然後在第二個數據上更新數據,如果其中一個失敗,我想要回滾所有操作。是否有可能在沒有啓用DTC的情況下使用兩個實例之間的事務?
數據庫服務器不啓用DTC/MSDTC。我厭倦了使用交易範圍,但沒有運氣。你們有什麼想法我該怎麼做?
,如果這些過程中的一個失敗了,我想回滾所有操作
你所描述分佈式事務。要使用分佈式事務,您需要一個事務協調器。你can't have the cake and eat it too。
如果您考慮異步應用這些更改,也就是說有一些選擇。 Replication。這將刪除分佈式事務要求,但在第一臺服務器上提交更改後,這些更改將異步應用於第二臺服務器。
一種選擇是將補償代碼放入您的應用程序中。例如,如果你的應用程序是基於c#的,你可以有一個try ... catch塊。在catch塊中,您可以添加補償代碼以「撤消」對第一臺服務器上的數據所做的更改。
然而,最好的方法當然是向DBA提出一個案例來啓用DTC