MS DTC 分散式事務
使用 OLE DB、開放式資料庫連線 (ODBC)、ActiveX 資料物件 (ADO) 或 DB 庫編寫的應用程式可以使用 Transact-SQL 分散式事務,方法是發出 Transact-SQL 語句來啟動和停止 Transact-SQL 分散式事務。OLE DB 和 ODBC 還包含在應用程式程式設計介面 (API) 級別對管理分散式事務的支援。OLE DB 應用程式和 ODBC 應用程式可以使用這些 API 函式管理包括其他元件物件模型 (COM) 資源管理器(支援 Microsoft 分散式事務處理協調器 [MS DTC] 事務但不支援 SQL Server 資料庫引擎)的分散式事務。它們也可以使用 API 函式獲取對包括多臺執行資料庫引擎例項的計算機的分散式事務邊界的更多控制。
ODBC 分散式事務
通過將連線屬性 SQL_ATTR_AUTOCOMMIT 設定為 SQL_AUTOCOMMIT_OFF,然後呼叫 ODBC SQLEndTran 函式提交或回滾每個事務,可以控制 ODBC API 級別的本地事務。請勿使用這些函式管理 ODBC 應用程式中的分散式事務。而應該使用 MS DTC COM 方法:
呼叫 DtcGetTransactionManager 連線到 MS DTC。
呼叫 ITransactionDispenser::BeginTransaction 啟動分散式事務並獲取事務物件。
對每個參與分散式事務的 ODBC 連線,呼叫 ODBC 函式 SQLSetConnectAttr,其中 fOption 設定為 SQL_COPT_SS_ENLIST_IN_DTC,vParam 儲存通過 ITransactionDispenser::BeginTransaction 獲得的事務物件的地址。
當事務完成時,對於通過 ITransactionDispenser::BeginTransaction 獲得的事務物件,不要呼叫 ODBC SQLEndTran 函式,而應呼叫 ITransaction::Commit 方法或 ITransaction::Rollback 方法。
OLE DB 分散式事務
控制 OLE DB 中的分散式事務的方法與控制本地事務的方法相似。若要控制本地事務,則 OLE DB 的使用者應該:
使用 ITransactionLocal::StartTransaction 方法啟動本地事務,並獲得事務物件。
對於通過 ITransactionLocal::StartTransaction 獲得的事務物件,呼叫 ITransaction::Commit 方法或 ITransaction::Rollback 方法。
若要控制分散式事務,使用者應該:
呼叫 DtcGetTransactionManager 連線到 MS DTC。
呼叫 ITransactionDispenser::BeginTransaction 啟動分散式事務,並獲取事務物件。
對每個參與分散式事務的連線,呼叫分散式事務物件的 ITransactionJoin 介面。
對分散式事務物件呼叫 ITransaction::Commit 方法或 ITransaction::Rollback 方法,完成該事務。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-494031/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SQL Server分散式事務處理(MS DTC)SQLServer分散式
- SQL Server分散式事務處理(MS DTC)-續SQLServer分散式
- 分散式事務(一)—分散式事務的概念分散式
- 分散式事務(3)---RocketMQ實現分散式事務原理分散式MQ
- 分散式事務和分散式hash分散式
- 分散式事務(4)---RocketMQ實現分散式事務專案分散式MQ
- 分散式事務概述分散式
- 理解分散式事務分散式
- 分散式事務--CAP分散式
- 【ITOO】--分散式事務分散式
- WS分散式事務分散式
- oracle分散式事務Oracle分散式
- 聊聊分散式事務分散式
- seata 分散式事務分散式
- 分散式系統(三)——分散式事務分散式
- 分散式系列七: 分散式事務理論分散式
- 分散式事務實戰分散式
- 分散式事務總結分散式
- 分散式事務介紹分散式
- 超越分散式事務分散式
- PHP 微服務之【分散式事務】PHP微服務分散式
- PHP 微服務之 [分散式事務]PHP微服務分散式
- 分散式事務之Spring事務與JMS事務(二)分散式Spring
- 本地事務和分散式事務的區別分散式
- 搞懂分散式技術19:使用RocketMQ事務訊息解決分散式事務分散式MQ
- 分散式事務(2)---強一致性分散式事務解決方案分散式
- TXC分散式事務簡介分散式
- SpringCloud(六)分散式事務SpringGCCloud分散式
- Laravel 分散式事務處理Laravel分散式
- 深入理解「分散式事務」分散式
- RocketMQ 分散式事務訊息MQ分散式
- 分散式事務保姆級教程分散式
- 分散式事務(四)之TCC分散式
- kratos分散式事務實踐分散式
- 深度剖析分散式事務效能分散式
- 分散式事務Saga模式分散式模式
- 大白話聊聊分散式事務分散式
- EAS_AOP分散式事務分散式