Udostępnij za pośrednictwem


MS DTC Distributed Transactions

Można użyć aplikacji napisanych z użyciem Open Database Connectivity (ODBC), obiekty ActiveX Data Objects (ADO), OLE DB lub biblioteki bazy danych Transact-SQL transakcje rozproszone przez wydanie Transact-SQL instrukcje dotyczące uruchamiania i zatrzymywania Transact-SQL transakcje rozproszone. OLE DB i ODBC zawierają również pomocy przy programowaniu poziom interfejs programowania aplikacji (API, interfejs programowania aplikacji) związanych z zarządzaniem transakcjami rozproszonymi.OLE DB i ODBC aplikacje mogą używać tych funkcji interfejsu API zarządzania transakcja rozproszona, zawierające inne obsługują menedżerów zasób Component Object Model (COM) Microsoft Rozłożone transakcje Transaction Coordinator (MS DTC) innego niż SQL Server Database Engine. Mogą również używać funkcji interfejsu API uzyskać większą kontrolę nad granicami transakcja rozproszona, zawierającym kilka komputerów działa wystąpień Database Engine.

Transakcji rozproszonych ODBC

Transakcje lokalne poziom interfejsu API ODBC można kontrolować, ustawiając atrybut połączenia SQL_ATTR_AUTOCOMMIT SQL_AUTOCOMMIT_OFF, a następnie poprzez wywołanie ODBC SQLEndTran funkcja przekazać lub wycofać każdą transakcję.Nie należy używać tych funkcji do zarządzania transakcja rozproszona w aplikacji ODBC.Zamiast tego należy użyć metod MS DTC COM:

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

  • Wywołanie ITransactionDispenser::BeginTransaction uruchomić transakcja rozproszona i uzyskanie obiektu transakcji.

  • Dla każdego połączenia ODBC biorących udział w transakcja rozproszona wywoływać funkcja ODBC SQLSetConnectAttr with fOption Ustaw SQL_COPT_SS_ENLIST_IN_DTC i vParam Przytrzymanie adresu obiektu transakcji z ITransactionDispenser::BeginTransaction.

  • Gdy transakcja zostanie zakończony, zamiast wywołanie ODBC SQLEndTran działać, zadzwoń Metody ITransaction::zatwierdzanie or ITransaction::Rollback metody obiektu transakcji z ITransactionDispenser::BeginTransaction.

OLE DB rozproszonych transakcji

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 uruchomić transakcji lokalnej i uzyskanie obiektu transakcji.

  • Wywołania Metody ITransaction::zatwierdzanie or ITransaction::Rollback metody obiektu transakcji otrzymanych w wyniku ITransactionLocal::StartTransaction.

Aby kontrolować transakcja rozproszona, konsument:

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

  • Wywołania ITransactionDispenser::BeginTransaction uruchomić rozproszonej transakcji i uzyskanie obiektu transakcji.

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

  • Wywołania Metody ITransaction::zatwierdzanie or ITransaction::Rollback metody obiektu transakcja rozproszona transakcji.