Udostępnij za pośrednictwem


OracleConnection.EnlistDistributedTransaction(ITransaction) Metoda

Definicja

Enlists w określonej transakcji jako transakcji rozproszonej.

public:
 void EnlistDistributedTransaction(System::EnterpriseServices::ITransaction ^ distributedTransaction);
public void EnlistDistributedTransaction (System.EnterpriseServices.ITransaction distributedTransaction);
member this.EnlistDistributedTransaction : System.EnterpriseServices.ITransaction -> unit
Public Sub EnlistDistributedTransaction (distributedTransaction As ITransaction)

Parametry

distributedTransaction
ITransaction

Odwołanie do istniejącego ITransaction , w którym należy zarejestrować.

Uwagi

Nowa wersja w ADO.NET 2.0 obsługuje użycie EnlistTransaction metody do rejestracji w transakcji rozproszonej. Ponieważ jest on enlista połączenia w Transaction wystąpieniu, EnlistTransaction korzysta z funkcji dostępnych w System.Transactions przestrzeni nazw do zarządzania transakcjami rozproszonymi, co zaleca enlistDistributedTransaction w tym celu. Aby uzyskać więcej informacji, zobacz Transakcje rozproszone.

Możesz kontynuować rejestrowanie w istniejącej transakcji rozproszonej przy użyciu

EnlistDistributedTransaction metoda, jeśli automatyczna rejestracja jest wyłączona. Rejestrowanie w istniejącej transakcji rozproszonej gwarantuje, że jeśli transakcja zostanie zatwierdzona lub wycofana, modyfikacje wprowadzone przez kod w źródle danych również zostaną zatwierdzone lub wycofane.

EnlistDistributedTransaction zwraca wyjątek, jeśli OracleConnection transakcja została już uruchomiona przy użyciu polecenia BeginTransaction. Jeśli jednak transakcja jest transakcją lokalną rozpoczętą w źródle danych (na przykład przez jawne wykonanie instrukcji BEGIN TRANSACTION przy użyciu OracleCommand obiektu), EnlistDistributedTransaction wycofa transakcję lokalną i zarejestrowa się w istniejącej transakcji rozproszonej zgodnie z żądaniem. Nie otrzymasz powiadomienia, że transakcja lokalna została wycofana i odpowiada za zarządzanie wszelkimi transakcjami lokalnymi, które nie zostały uruchomione przy użyciu polecenia BeginTransaction.

Dotyczy