Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Windows, birlikte bir işlem yöneticisi oluşturan bir dizi hizmeti ve modülü barındırıyor. İşlem yönetimi yükseltmesi, bir işlemi işlem yöneticisinin bileşenlerinden birinden diğerine geçirme işlemini açıklar.
System.Transactions en çok, tek bir dayanıklı kaynak veya birden çok geçici kaynak içeren bir işlemi koordine eden bir işlem yöneticisi bileşeni içerir. İşlem yöneticisi yalnızca uygulama içi etki alanı çağrılarını kullandığından en iyi performansı verir. Geliştiricilerin doğrudan işlem yöneticisiyle etkileşim kurması gerekmez. Bunun yerine, arabirimleri, ortak davranışı ve yardımcı sınıflarını tanımlayan ortak bir altyapı ad alanı tarafından System.Transactions sağlanır.
İşlemi aynı bilgisayardaki başka bir uygulama etki alanındaki bir nesneye (işlem ve makine sınırları arasında dahil) sağlamak istediğinizde, System.Transactions altyapı işlemi Microsoft Dağıtılmış İşlem Düzenleyicisi (MSDTC) tarafından yönetilecek şekilde otomatik olarak yükseltir. Başka bir dayanıklı kaynak yöneticisini dahil ederseniz artış da gerçekleşir. Yükseltildiğinde, işlem tamamlanıncaya kadar yükseltilmiş durumda yönetilmeye devam eder.
System.Transactions işlemi ile MSDTC işlemi arasında, Yükseltilebilir Tek Aşamalı Listeleme (PSPE) aracılığıyla sunulan bir ara işlem türü vardır. PSPE, performans iyileştirmesi için System.Transactions içinde diğer önemli bir mekanizmadır. Farklı bir uygulama etki alanında, işlemde veya bilgisayarda bulunan uzak dayanıklı kaynağın bir MSDTC işlemine yükseltilmesine neden olmadan bir System.Transactions işleme katılmasını sağlar. PSPE hakkında daha fazla bilgi için bkz. Bir İşlemde Kaynakları Katılımcı Olarak Listeleme.
İlerletme Nasıl Başlatılır?
MSDTC ayrı bir işlemde bulunduğundan ve bir işlemin MSDTC'ye iletilmesi işlem genelinde ileti gönderilmesine neden olduğundan işlem yükseltme performansı azaltır. Performansı geliştirmek için MSDTC'ye yükseltmeyi geciktirmeli veya bundan kaçınmalısınız; bu nedenle, yükseltmenin nasıl ve ne zaman başlatıldığını bilmeniz gerekir.
Altyapı geçici kaynakları ve tek aşamalı bildirimleri destekleyen en fazla bir dayanıklı kaynağı işlediği sürece, işlem System.Transactions altyapının System.Transactions sorumluluğunda kalır. İşlem yöneticisi yalnızca aynı uygulama etki alanında bulunan ve günlüğe kaydetmenin (işlem sonucunu diske yazmanın) gerekli olmadığı kaynaklara erişim sağlar. Altyapının System.Transactions işlemin sahipliğini MSDTC'ye aktarmasına neden olan bir yükseltme şu durumlarda gerçekleşir:
Tek aşamalı bildirimleri desteklemeyen en az bir dayanıklı kaynak işleme eklenir.
Tek aşamalı bildirimleri destekleyen en az iki dayanıklı kaynak işleme eklenir. Örneğin, SQL Server 2005 ile tek bir bağlantının listelenmesi, bir işlemin yükseltilmesine neden olmaz. Ancak, bir SQL Server 2005 veritabanına ikinci bir bağlantı açarak veritabanının kayıt olunmasına neden olduğunuzda, System.Transactions altyapı bunun işlemdeki ikinci dayanıklı kaynak olduğunu algılar ve bunu bir MSDTC işlemi olarak yükseltir.
İşlemi farklı bir uygulama etki alanına veya farklı bir işleme "uyarlama" isteğinde bulunulur. Örneğin, bir uygulama etki alanı sınırında işlem nesnesinin seri hale getirilmesi. İşlem nesnesi değere göre sıralanmış durumdadır; başka bir deyişle, bir uygulama etki alanı sınırından (aynı işlemde bile) geçirme girişimi işlem nesnesinin seri hale getirilmesiyle sonuçlanır. Uzak bir yöntemi, parametre olarak Transaction alan bir çağrı yaparak işlem nesnelerini iletebilir veya uzak bir işlem hizmeti veren bileşene erişmeyi deneyebilirsiniz. Bu işlem nesnesini serileştirir ve uygulama etki alanı genelinde bir işlem serileştirilirken olduğu gibi bir yükseltmeyle sonuçlanır. Dağıtılıyor ve yerel işlem yöneticisi artık yeterli değil.
Aşağıdaki tabloda, yükseltme sırasında oluşturulabilecek tüm olası özel durumlar listelenir.
| Özel durum türü | Koşul |
|---|---|
| InvalidOperationException | Snapshot seviyesine eşit bir yalıtım düzeyinde bir işlemi yükseltme girişimi. |
| TransactionAbortedException | İşlem yöneticisi çalışmıyor. |
| TransactionException | Yükseltme başarısız olur ve uygulama durduruldu. |