Aracılığıyla paylaş


Hareketlerini (XMLA) yönetme

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.Bu, hareketlerin her biri yönetmek için , kullandığınız BeginTransaction, CommitTransaction, and RollbackTransaction komutları.Bu komutları kullanarak, başlatabilir örtülü veya açık hareketleri oluştur, hareket başvuru sayısı, değiştirme yaný sýra, yürütme veya işlemleri geri almak almak.

Örtülü ve açık hareketleri

Bir hareket, örtülü veya açık olan:

  • örtük işlem
    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.

  • belirtik işlem
    Analysis Services oluşturur bir açık hareket, BeginTransaction komut, bir hareket başlatır. Ancak, Analysis Services yalnızca, açık bir hareketi tamamlar bir CommitTransaction komut gönderilir ve belirtik işlem, varsa geri geldiğinde bir RollbackTransaction komut gönderilir.

Buna ek olarak, Analysis Services etkin işlem tamamlanmadan önce geçerli oturum sona ererse, açık ve kapalı hareketleri geri alır.

Hareketleri ve başvuru sayaçları

Analysis Services Hareket bir başvuru sayısı, her oturum için tutar.Ancak, Analysis Services yalnızca bir etkin işlem, her oturumda korunur, iç içe geçmiş işlem desteklemiyor. Etkin bir işlem geçerli oturum yoksa, işlem başvuru sayısı sıfır olarak küme.

Diğer bir deyişle, her BeginTransaction komut başvuru sayısı, her sırada birer birer artar. CommitTransaction komut, başvuru sayımını bir azaltır. Varsa bir CommitTransaction komut, hareket sayısı, sıfır olarak ayarlar. Analysis Services hareketi tamamlar.

Ancak, RollbackTransaction komut, geçerli değeri ne olursa olsun, hareket başvuru sayısı etkin işlem geri alır. Diğer bir deyişle, tek bir RollbackTransaction komut ne olursa olsun etkin işlem geri alır. BeginTransaction komutları veya CommitTransaction komutlar, gönderilen ve hareket başvuru sayısı, sıfır olarak ayarlar.

Bir işlem başlangıcı

The BeginTransaction command begins an belirtik işlem on the current oturum and increments the transaction reference count for the current oturum by one. Tüm diğer komutları da kadar etkin hareket içinde yeterli olduğu kabul edilir CommitTransaction etkin işlem veya tek yürütme için gönderilen komutları RollbackTransaction komutu, etkin işlem geri almak almak gönderilir.

Bir işlem yapılıyor

The CommitTransaction command commits the sonuçlar of commands that are run after the BeginTransaction command was run on the current oturum. Her CommitTransaction komut başvuru sayısı etkin işlemler için bir oturum, azaltır. Varsa bir CommitTransaction komut başvuru sayısı, sıfır olarak ayarlar. Analysis Services etkin işlem kaydeder. Etkin işlem yok değilse (başka bir deyişle, geçerli oturum için hareket başvuru sayısı zaten sıfır olarak küme), bir CommitTransaction komut, hatayla sonuçlanır.

Bir işlem'geri alınıyor

The RollbackTransaction command rolls back the sonuçlar of commands that are run after the BeginTransaction command was run on the current oturum. The RollbackTransaction command rolls back the active transaction, regardless of the current transaction reference count, and sets the transaction reference count to zero.Etkin işlem yok değilse (başka bir deyişle, geçerli oturum için hareket başvuru sayısı zaten sıfır olarak küme), bir RollbackTransaction komut, hatayla sonuçlanır.