Udostępnij za pośrednictwem


Transakcje rozproszone MS DTC

Aplikacje napisane przy użyciu OLE DB, Open Database Connectivity (ODBC), obiektów ActiveX Data Objects (ADO) lub biblioteki bazy danych można użyć Transact-SQL transakcji rozproszonych, wydając Transact-SQL instrukcji, aby uruchomić i zatrzymać Transact-SQL transakcji rozproszonej.OLE DB i ODBC zawierają również wsparcia na interfejs programowania aplikacji (API) poziom zarządzania transakcje rozproszone.OLE DB i ODBC aplikacje mogą używać tych funkcji API transakcji rozproszonych, które zawierają innych menedżerów zasób modelu COM (Component Object Model), które obsługują zarządzanie Microsoft Distributed Transaction Coordinator (MS DTC) transakcje inne niż Aparat baz danych programu SQL Server.Aby uzyskać większą kontrolę nad granice transakcja rozproszona, zawierającego kilka wystąpień komputerach mogą również wykorzystać funkcje interfejsu API Aparat baz danych.

Transakcje rozproszone ODBC

Transakcje lokalne poziom interfejsu API ODBC można kontrolować, ustawiając atrybut połączenia SQL_ATTR_AUTOzatwierdzanie do SQL_AUTOzatwierdzanie_OFF i następnie wywołując ODBC SQLEndTran funkcja zatwierdzanie lub wycofać każdą transakcję.Nie można używać tych funkcji do zarządzania transakcja rozproszona w aplikacji ODBC.Należy użyć metody MS DTC COM:

  • Wywołanie DtcGetTransactionManager połączyć się z usługą MS DTC.

  • Wywołanie ITransactionDispenser::BeginTransaction do rozpoczęcia transakcja rozproszona i pobrać obiektu transakcji.

  • Dla każdego połączenia ODBC uczestniczących w transakcja rozproszona wywołania funkcja ODBC SQLzestawConnectAttr z fOption zestaw do SQL_COPT_SS_ENLIST_IN_DTC i vParam gospodarstwa adresu obiektu transakcji z ITransactionDispenser::BeginTransaction.

  • Po zakończeniu transakcji, zamiast wywoływania ODBC SQLEndTran funkcja, call metody ITransaction::Commit lub ITransaction::Rollback metody na obiekcie transakcji uzyskanych z ITransactionDispenser::BeginTransaction.

OLE DB transakcje rozproszone

Model kontroli transakcja rozproszona w OLE DB jest podobne do kontrolowania transakcji lokalnej.Aby kontrolować transakcji lokalnej konsumenta OLE DB:

  • Używa ITransactionLocal::StartTransaction metoda, aby uruchomić transakcji lokalnej i pobrać obiektu transakcji.

  • Wywołania metody ITransaction::Commit lub ITransaction::Rollback metody na obiekcie transakcji uzyskane przez ITransactionLocal::StartTransaction.

Kontrola transakcja rozproszona konsumenta:

  • Wywołania DtcGetTransactionManager połączyć się z usługą MS DTC.

  • Wywołania ITransactionDispenser::BeginTransaction do rozpoczęcia transakcja rozproszona i pobrać obiektu transakcji.

  • Wywołania ITransactionJoin interfejs obiektu transakcja rozproszona dla każdego połączenia uczestniczących w transakcja rozproszona.

  • Wywołania metody ITransaction::Commit lub ITransaction::Rollback metody obiektu transakcja rozproszona transakcji.