十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
創(chuàng)新互聯(lián)www.cdcxhl.cn八線動(dòng)態(tài)BGP香港云服務(wù)器提供商,新人活動(dòng)買多久送多久,劃算不套路!

本篇文章給大家分享的是有關(guān)什么是分布式事務(wù),小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。
分布式事務(wù)是指事務(wù)的參與者、支持事務(wù)的服務(wù)器、資源服務(wù)器以及事務(wù)管理器分別位于不同的分布式系統(tǒng)的不同節(jié)點(diǎn)之上。
為了實(shí)現(xiàn)分布式事務(wù),需要使用下面將介紹的兩階段提交協(xié)議。 * 階段一:開始向事務(wù)涉及到的全部資源發(fā)送提交前信息。此時(shí),事務(wù)涉及到的資源還有最后一次機(jī)會(huì)來(lái)異常結(jié)束事務(wù)。如果任意一個(gè)資源決定異常結(jié)束事務(wù),則整個(gè)事務(wù)取消,不會(huì)進(jìn)行資源的更新。否則,事務(wù)將正常執(zhí)行,除非發(fā)生災(zāi)難性的失敗。為了防止會(huì)發(fā)生災(zāi)難性的失敗,所有資源的更新都會(huì)寫入到日志中。這些日志是永久性的,因此,這些日志會(huì)幸免于難并且在失敗之后可以重新對(duì)所有資源進(jìn)行更新。 * 階段二:只在階段一沒有異常結(jié)束的時(shí)候才會(huì)發(fā)生。此時(shí),所有能被定位和單獨(dú)控制的資源管理器都將開始執(zhí)行真正的數(shù)據(jù)更新。 在分布式事務(wù)兩階段提交協(xié)議中,有一個(gè)主事務(wù)管理器負(fù)責(zé)充當(dāng)分布式事務(wù)協(xié)調(diào)器的角色。事務(wù)協(xié)調(diào)器負(fù)責(zé)整個(gè)事務(wù)并使之與網(wǎng)絡(luò)中的其他事務(wù)管理器協(xié)同工作。 為了實(shí)現(xiàn)分布式事務(wù),必須使用一種協(xié)議在分布式事務(wù)的各個(gè)參與者之間傳遞事務(wù)上下文信息,IIOP便是這種協(xié)議。這就要求不同開發(fā)商開發(fā)的事務(wù)參與者必須支持一種標(biāo)準(zhǔn)協(xié)議,才能實(shí)現(xiàn)分布式的事務(wù)。
在 Transact-SQL 中啟動(dòng)的分布式事務(wù)的結(jié)構(gòu)相對(duì)比較簡(jiǎn)單:
1. Transact-SQL腳本或應(yīng)用程序連接執(zhí)行啟動(dòng)分布式事務(wù)的 Transact-SQL 語(yǔ)句。
2. 執(zhí)行該語(yǔ)句的 Microsoft® SQL Server? 成為事務(wù)中的主控服務(wù)器。
3. 然后腳本或應(yīng)用程序?qū)︽溄拥姆?wù)器執(zhí)行分布式查詢,或?qū)h(yuǎn)程服務(wù)器執(zhí)行遠(yuǎn)程存儲(chǔ)過(guò)程。
4. 當(dāng)執(zhí)行了分布式查詢或遠(yuǎn)程過(guò)程調(diào)用后,主控服務(wù)器將自動(dòng)調(diào)用 MS DTC 以便登記分布式事務(wù)中鏈接的服務(wù)器和遠(yuǎn)程服務(wù)器。
5. 當(dāng)腳本或應(yīng)用程序發(fā)出 COMMIT 或 ROLLBACK 語(yǔ)句時(shí),主控 SQL Server 將調(diào)用 MS DTC 管理兩階段提交過(guò)程,或者通知鏈接的服務(wù)器和遠(yuǎn)程服務(wù)器回滾其事務(wù)。
語(yǔ)句
控制分布式事務(wù)的 Transact-SQL 語(yǔ)句很少,因?yàn)槎鄶?shù)工作都由 Microsoft® SQL Server? 和 MS DTC 在內(nèi)部完成。Transact-SQL 腳本或應(yīng)用程序中所需的 Transact-SQL 語(yǔ)句只須:
●啟動(dòng)分布式事務(wù)。
●對(duì)鏈接的服務(wù)器執(zhí)行分布式查詢,或?qū)h(yuǎn)程服務(wù)器執(zhí)行遠(yuǎn)程過(guò)程調(diào)用。
●調(diào)用標(biāo)準(zhǔn) Transact-SQL COMMIT TRANSACTION、COMMIT WORK、ROLLBACK TRANSACTION 或 ROLLBACK WORK 語(yǔ)句完成事務(wù)。
●對(duì)于任意一個(gè) Transact-SQL 分布式事務(wù),處理 Transact-SQL腳本或連接的 SQL Server 將自動(dòng)調(diào)用 MS DTC 以協(xié)調(diào)事務(wù)的提交或回滾。
REMOTE_PROC_TRANSACTIONS 選項(xiàng)是一個(gè)兼容性選項(xiàng),只影響對(duì)使用sp_addserver定義的遠(yuǎn)程服務(wù)器所進(jìn)行的遠(yuǎn)程存儲(chǔ)過(guò)程調(diào)用。有關(guān)遠(yuǎn)程存儲(chǔ)過(guò)程的更多信息,請(qǐng)參見遠(yuǎn)程存儲(chǔ)過(guò)程構(gòu)架。該選項(xiàng)不適用于在使用sp_addlinkedserver定義的鏈接服務(wù)器上執(zhí)行存儲(chǔ)過(guò)程的分布式查詢。有關(guān)分布式查詢的更多信息,請(qǐng)參見分布式查詢。
以上就是什么是分布式事務(wù),小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道。