Aracılığıyla paylaş


Kaynak Yöneticisi uygulama

Bir işlemde kullanılan her kaynak, eylemleri bir işlem yöneticisi tarafından koordine edilen bir kaynak yöneticisi tarafından yönetilir. Kaynak yöneticileri, uygulamaya bölünmezlik ve yalıtım garantisi sağlamak için işlem yöneticisiyle işbirliği içinde çalışır. Microsoft SQL Server, kalıcı ileti sıraları, bellek içi karma tabloları kaynak yöneticilerinin tüm örnekleri mevcuttur.

Kalıcı veya geçici Veri Kaynağı Yöneticisi yönetir. Süreklilik (veya tersine volatility) kaynak yöneticisi kaynak yöneticisi hatası kurtarma destekleyip başvuruyor. Kaynak yöneticisi hata kurtarmayı destekliyorsa, verileri Aşama1 (hazırlama) sırasında dayanıklı depolamada kalıcı hale getirir; böylece kaynak yöneticisi devre dışı kalırsa kurtarma sonrasında işleme yeniden kaydolabilir ve işlem yöneticisinden alınan bildirimlere göre uygun eylemleri gerçekleştirebilir. Genel olarak, geçici kaynak yöneticileri bellek içi veri yapısı (örneğin, bellek içi transacted-hashtable) gibi geçici kaynakları yönetir ve dayanıklı kaynak yöneticileri daha kalıcı bir yedekleme deposu (örneğin, yedekleme deposu disk olan bir veritabanı) olan kaynakları yönetir.

Bir kaynağın bir işleme katılması için işleme kaydolması gerekir. sınıfı, Transaction adları bu işlevselliği sağlayan Enlist ile başlayan bir yöntem kümesi tanımlar. Farklı Liste yöntemleri, kaynak yöneticisinin sahip olabileceği farklı liste türlerine karşılık gelir. Özellikle, kullandığınız EnlistVolatile geçici kaynaklar için yöntemleri ve EnlistDurable kalıcı kaynaklar için yöntem. Kullanılacak karar sonra kolaylık EnlistDurable veya EnlistVolatile , kaynağın süreklilik desteğini tabanlı yöntemi, iki aşaması yürütme içinde (2PC) uygulayarak katılmak için kaynak listeleme IEnlistmentNotification , kaynak yöneticisi için arabirim. 2PC hakkında daha fazla bilgi için bkz . Tek Aşamalı ve Çok Aşamalı İşlem İşleme.

Kaynak yöneticisi, kayıt yaptırarak, işlem işlendiğinde veya durdurulduğunda işlem yöneticisinden geri çağırmalar almasını sağlar. Bir örneği yok IEnlistmentNotification başına liste. Genellikle, işlem başına bir liste vardır, ancak bir kaynak yöneticisi aynı işlemde birden çok kez kaydolmayı seçebilir.

Kayıt işleminden sonra kaynak yöneticisi işlemin isteklerine yanıt verir. Dayanıklı bir kaynak yöneticisi, işlemin yönettiği kaynaklarla ilgili çalışmasını geri almak veya yinelemek için yeterli bilgiyi depolar. Bunu yapmak için birçok yolu vardır; Veri sürümlerini saklama veya değişiklikleri bir günlük tutma iki ortak teknikler mevcuttur.

Uygulama işlemi işlediğinde, işlem yöneticisi iki aşamalı işleme protokolünü başlatır. İşlem yöneticisi önce, listeye alınan her kaynak yöneticisine işlemi işlemeye hazır olup olmadığını sorar. Kaynak yöneticisi işlemeye hazırlanmalıdır; işlemi işlemeye veya iptal etmeye kendini okur.

Böylece sistem başarısız olsa bile Kaynak Yöneticisi, kurtarabilirsiniz hazırla aşamasında, eski ve yeni veri kalıcı Kaynak Yöneticisi tutarlı depolama kaydeder. Kaynak yöneticisi hazırlanabiliyorsa, işlem yöneticisine hareketin işlenip işlenmeyeceği veya durdurulup durdurulmayacağı konusunda oylarını bildirir. Herhangi bir kaynak yöneticisi hazırlanma hatası bildirirse, işlem yöneticisi her kaynak yöneticisine bir geri alma komutu gönderir ve işlemenin uygulamaya başarısız olduğunu gösterir.

Hazırlandıktan sonra, kaynak yöneticisinin 2. aşamada işlem yöneticisinden bir işleme veya geri çağırmayı durdurana kadar beklemesi gerekir. Genel olarak, bir saniyenin tüm hazırla ve yürütme protokol tamamlar. Sistem veya iletişim hatası yoksa, tamamlama veya iptal bildirimi dakika veya saat için gelebilir değil. Bu süre boyunca kaynak yöneticisi işlemin sonucu hakkında şüphe içindedir. İşlemin tamamlanıp işlenmediğini veya durdurulup durdurulmadığını bilmez. Kaynak yöneticisi bir işlem hakkında şüpheli olsa da, işlemi kilitli tutarak verilerin değiştirilmesini sağlar ve böylece bu değişiklikler diğer işlemlerden yalıtılır.

Bir kaynak yöneticisi başarısız olduğunda, hatadan önce hazırlanan veya işlenenler dışında, listede yer alan tüm işlemler durduruldu. Dayanıklı bir kaynak yöneticisi yeniden başlatıldığında, hazırlama aşamasında yazılan bilgileri alarak yönettiği kaynakların kaydedilmiş durumunu yeniden oluşturur ve bu işlemleri uygun şekilde işler veya durdurur.

Özetle, iki aşamalı işleme protokolü ve kaynak yöneticileri bir araya gelerek işlemleri atomik ve dayanıklı hale getirir.

Transaction Sınıfı sağlar EnlistPromotableSinglePhase bir Promotable tek aşaması liste'nı (PSPE) listeleme yöntemi. Bu, dayanıklı bir kaynak yöneticisinin (RM) daha sonra gerekirse MSDTC tarafından yönetilecek şekilde yükseltilebilen bir işlemi barındırmasına ve "sahip olmasına" olanak tanır. Bu konuda daha fazla bilgi için bkz . Tek Aşamalı İşleme ve Tanıtılabilir Tek Aşamalı Bildirim kullanarak iyileştirme.

Bu Bölümde

Genel olarak kaynak yöneticisi tarafından izlenen adımları aşağıdaki konulara özetlenmiştir.

Bir İşlemde Kaynakları Katılımcı Olarak Kaydetme

Dayanıklı veya geçici bir kaynağın bir işleme nasıl kaydolabileceğini açıklar.

Tek Aşamalı ve Çok Aşamalı İşlem Gerçekleştirme

Bildirim Kaydet ve yürütme hazırlamak için bir kaynak yöneticisi nasıl yanıt vereceğini açıklar.

Kurtarma Gerçekleştirme

Nasıl sürekli Kaynak Yöneticisi hata verdi kurtarır açıklar.

Kaynaklara Erişimde Güvenlik Güven Düzeyleri

System.Transactions için üç güven düzeyinin, kullanıma sunan kaynak türlerine erişimi nasıl kısıtladığını System.Transactions açıklar.

Tek Aşamalı İşleme ve Yükseltilebilir Tek Aşamalı Bildirim kullanarak en iyi duruma getirme

Kaynak yöneticileri uygulamalar için kullanılabilir olan en iyi hale getirme yöntemleri açıklar.