Managing Transactions (XMLA)
Every XML for Analysis (XMLA) command sent to an instance of Microsoft SQL Server Analysis Services runs within the context of a transaction on the current implicit or explicit session.Aby zarządzać każdego z tych transakcji, należy użyć BeginTransaction, CommitTransaction, and RollbackTransaction polecenia.Za pomocą tych poleceń, można utworzyć bezpośrednia lub pośrednia transakcji, zmienić licznika odwołań transakcji, a także uruchomić, przekazać lub wycofać transakcji.
Niejawne i jawne transakcji
Transakcja jest jawny lub niejawny:
transakcja niejawna
Analysis Services creates an implicit transaction for an XMLA command if the BeginTransaction command does not specify the start of a transaction.Analysis Services always commits an implicit transaction if the command succeeds, and rolls back an implicit transaction if the command fails.Transakcja jawna
Analysis Services Tworzy jawne transakcji Jeśli BeginTransaction polecenie uruchamia transakcji. Jednak Analysis Services zatwierdza transakcja jawna tylko, jeśli CommitTransaction polecenie jest wysyłane, a następnie powoduje powrót transakcja jawna, jeśli RollbackTransaction przesyłane jest polecenie.
Ponadto, Analysis Services powoduje powrót niejawne i jawne transakcji, gdy bieżąca sesja kończy się przed zakończeniem aktywnej transakcji.
Transakcje i liczniki odwołania
Analysis Services przechowuje licznika odwołań transakcji dla każdej sesja.Jednak Analysis Services nie obsługuje zagnieżdżonych transakcji, w tym tylko jednej aktywnej transakcji jest przechowywana w ciągu danej sesja. Jeśli w bieżącej sesja nie ma aktywnej transakcji, transakcji licznika odwołań jest zestaw na zero.
Innymi słowy każda BeginTransaction polecenie zwiększa o jeden przy każdym licznika odwołań CommitTransaction polecenie zmniejsza odwołanie zliczanie o jeden. Jeśli CommitTransaction polecenie ustawia liczba transakcji na zero, Analysis Services zatwierdza transakcję.
Jednak RollbackTransaction polecenie powoduje powrót aktywnej transakcji niezależnie od bieżącej wartości licznika odwołań transakcji. Innymi słowy pojedynczy RollbackTransaction polecenie powoduje powrót aktywnych transakcji, bez względu na liczbę BeginTransaction polecenia lub CommitTransaction polecenia zostały wysłane i ustawia liczbę odwołań transakcji na zero.
Począwszy od transakcji
The BeginTransaction command begins an transakcja jawna on the current sesja and increments the transaction reference count for the current sesja by one. Wszystkie kolejne polecenia są traktowane jako aktywnych transakcji, do czasu albo wystarczająco CommitTransaction polecenia są wysyłane do zatwierdzanie aktywnej transakcji lub pojedyncze RollbackTransaction polecenia są wysyłane do przywrócenia aktywnej transakcji.
Zatwierdzanie transakcji
The CommitTransaction command commits the wyniki of commands that are run after the BeginTransaction command was run on the current sesja. Każdy CommitTransaction polecenie zmniejsza liczbę odwołań dla aktywnych transakcji w sesja. Jeśli CommitTransaction polecenie ustawia liczbę odwołań do zera, Analysis Services zatwierdza aktywnej transakcji. Jeśli brak aktywnych transakcji (innymi słowy, liczba odwołań transakcji dla bieżącej sesja jest już zestaw zero), / / CommitTransaction polecenie powoduje błąd.
Stopniowe Wstecz transakcji
The RollbackTransaction command rolls back the wyniki of commands that are run after the BeginTransaction command was run on the current sesja. The RollbackTransaction command rolls back the active transaction, regardless of the current transaction reference count, and sets the transaction reference count to zero.Jeśli brak aktywnych transakcji (innymi słowy, liczba odwołań transakcji dla bieżącej sesja jest już zestaw zero), / / RollbackTransaction polecenie powoduje błąd.