Share via


Çoğaltma Yönetim Nesneleri kavramları

Çoğaltma Yönetim Nesneleri (RMO) olduğu için çoğaltma işlevlerini içeren bir yönetilen kod derlemeSQL Server.RMO tarafından uygulananMicrosoft.SqlServer.Replicationad alanı.

Konular aşağıdaki bölümlerde, çoğaltma görevlerini programlı olarak denetlemek için RMO nasıl kullanabileceğinizi açıklar:

RMO programlama giriş

RMO tüm programlama için tasarlanmıştırSQL Serverçoğaltma.The RMO ad alanıMicrosoft.SqlServer.Replication, ve, Microsoft.SqlServer.Rmo.dll tarafından uygulandığı birMicrosoft.NET framework derleme.De ait olduğu derleme the Microsoft.SqlServer.Replication.dll,Microsoft.SqlServer.Replicationad alanı, çeşitli çoğaltma aracıları (anlık görüntü Agent, Distribution Agent ve Merge Agent) programlama için bir yönetilen kod arabirim uygulayan.Sınıflardan abonelikleri eşitlemek için RMO erişilebilir.Sınıfları,Microsoft.SqlServer.Replication.BusinessLogicSupportad, Microsoft.SqlServer.çoğaltma.BusinessLogicSupport.dll derlemesi tarafından gerçekleştirilen derleme çoğaltma. özel iş mantığı oluşturmak için kullanılırBu derleme, RMO ' bağımsızdır.

Üzerinde RMO tabanlı uygulamalarını dağıtma

RMO bağlıdır çoğaltma bileşenleri ve tüm sürümleriyle birlikte gelen istemci bağlanabilirlik bileşenleriSQL Serverdışında SQL Server sıkıştırma.Bir sürüm yüklemelisiniz RMO, temel bir uygulamayı dağıtmak içinSQL ServerKopyalama bileşenleri ve bilgisayara, uygulama olacak istemci bağlanabilirlik bileşenleri içeren çalışma.

RMO ile çalışmaya başlama

Bu bölümde açıklayan bir basit RMO projesini kullanarak başlatmaMicrosoftVisual Studio.

Yeni bir Microsoft Visual C# projesi oluşturmak için

  1. Visual Studio'nun başlatın.

  2. On the File menu, click NewProject.New Project iletişim kutusu görüntülenir.

  3. ,Proje türleri iletişim kutusu, seçim Visual C# Projects . ,Şablonları bölmesinde, select Windows Application .

  4. (İsteğe bağlı) girişAdı, yeni uygulama. adını yazın

  5. ' I tıklatınOK Visual C# Windows şablonun. yüklemek için

  6. ,Proje seçin Add Reference öğe. menüsünde The Add Reference dialog box appears.

  7. Derlemeleri aşağıdaki listeden seçin**.NET** sekmesini tıklatın ve sonra Tamam .

    • Microsoft.SqlServer.çoğaltma .NET programlama arabirim

    • Microsoft.SqlServer.ConnectionInfo

    • Çoğaltma aracısı kitaplığı

    Not

    Birden fazla dosya seçmek için CTRL tuşunu kullanın.

  8. (İsteğe bağlı) 6 Arasındaki adımları yineleyin.TıklatınGöz atma sekmesinde, gezinme için C:\Program Files\Microsoft SQL Server\100\COM, Microsoft.SqlServer.çoğaltma.BusinessLogicSupport.dll, seçin ve ardından Tamam .

  9. ,Görünüm menu, click Code.

  10. Ad alanı bildirimi önce kodu aşağıdaki yazınusingRMO ad türlerinde alabilmek için ifadeleri:

    // These namespaces are required.
    using Microsoft.SqlServer.Replication;
    using Microsoft.SqlServer.Management.Common;
    // This namespace is only used when creating custom business
    // logic for merge replication.
    using Microsoft.SqlServer.Replication.BusinessLogicSupport; 
    

Yeni bir Microsoft Visual Basic .NET proje oluşturmak için

  1. Visual Studio'nun başlatın.

  2. ,Dosya menüsü, seçim Yeni proje . The New Project dialog box appears.

  3. Project, Types bölmesinde seçinVisual Basic.Templates bölmesinde seçinWindows uygulaması.

  4. (İsteğe bağlı) ınAdı yeni uygulama. adını yazın.

  5. ' I tıklatınOK Visual Basic Windows şablonun. yüklemek için

  6. ,Proje menüsü, seçin Add Reference . The Add Reference dialog box appears.

  7. Derlemeleri aşağıdaki listeden seçin**.NET** sekmesini tıklatın ve sonra Tamam .

    • Microsoft.SqlServer.çoğaltma .NET programlama arabirim

    • Microsoft.SqlServer.ConnectionInfo

    • Çoğaltma aracısı kitaplığı

    Not

    Birden fazla dosya seçmek için CTRL tuşunu kullanın.

  8. (İsteğe bağlı) 6 Arasındaki adımları yineleyin.TıklatınGöz atma sekmesinde, gezinme için C:\Program Files\Microsoft SQL Server\100\COM, Microsoft.SqlServer.çoğaltma.BusinessLogicSupport.dll, seçin ve ardından Tamam .

  9. ,Görünüm menu, click Code.

  10. Tüm bildirimlerden önce kodu aşağıdaki yazınImportsifadeleri geçerli türleri RMO ad.

    ' These namespaces are required.
    Imports Microsoft.SqlServer.Replication
    Imports Microsoft.SqlServer.Management.Common
    ' This namespace is only used when creating custom business
    ' logic for merge replication.
    Imports Microsoft.SqlServer.Replication.BusinessLogicSupport 
    

Bir çoğaltma sunucusuna bağlanma

RMO programlama nesneleri gerektiren bir bağlantı örneğiniSQL Serverörneğini kullanarak yapılanServerConnectionClass.Bu sunucuya RMO programlama nesneleri bağımsız olarak yapılır.İçin RMO sonra geçen sırasında ya da nesne örnek oluşturma veya atama içinConnectionContext()özellik nesnesi.Bu şekilde bir RMO nesnesi ve bağlantı nesne örnekleri programlama oluşturulan ve ayrı olarak yönetilen ve tek bir bağlantı nesnesi birden çok RMO nesnelerini programlama ile yeniden kullanılabilir.Çoğaltma sunucusu bağlantıları için aşağıdaki kurallar uygulanır:

  • Bağlantı için tüm özellikler için tanımlanan bir verilenServerConnectionnesne.

  • Her bağlantıSQL Serverolmalıdır, kendiServerConnectionnesne.

  • The ServerConnection object is assigned to the ConnectionContext() property of the RMO programming object being created or accessed on the server.

  • The Connect() method opens the connection to the server.Bu programlama nesneleri aynı bağlantıyı kullanan tüm RMO sunucuya erişen tüm yöntemleri çağırmadan önce bu yöntemin çağrılması gerekir.

  • Çünkü RMO veSQL ServerYönetimi Objects (SMO) her ikisini de kullananServerConnectionbağlantılar için sınıfSQL ServerRMO hem de SMO nesneleri. aynı bağlantı kullanılabilirDaha fazla bilgi için bkz:SQL Server'ın örnek için bağlanma.

  • Bağlantı kurmak için sunucuya başarıyla oturum açan tüm kimlik bilgileri sağlananServerConnectionnesne.

  • Windows kimlik doğrulaması varsayılandır.KullanmaSQL ServerKimlik doğrulamasıLoginSecure()olması gereken küme içinfalseveLogin()vePassword()olması gereken küme için geçerli birSQL Serveroturum açma ve parola.Güvenlik kimlik bilgileri gerekir her saat saklanır ve güvenli bir şekilde ele ve çalışma zamanı sırasında mümkün oldukça sağlanan.

  • Ayrı bir çok iş parçacıklı uygulamalar içinServerConnectionnesne, her iş parçacığı. kullanılmalıdır

CallDisconnect()yöntemServerConnectionnesne tarafından kullanılan active server bağlantıları kapatmak için RMO nesnelerin.

RMO özelliklerini ayarlama

RMO programlama nesneleri, özellikleri, bu sunucuda çoğaltma nesnelerinin özelliklerini temsil eder.RMO özellikleri, yeni çoğaltma nesneleri sunucu oluştururken, bu nesneleri tanımlamak için kullanılır.Varolan nesneler için yalnızca yazılabilir veya ayarlanabilir özellikleri değiştirilebilir varolan nesnenin özelliklerini RMO özelliklerini gösterir.Yeni nesneler veya varolan nesneleri, özellikleri ayarlanabilir.

Yeni çoğaltma nesneleri için özellikleri ayarlama

Sunucuda yeni çoğaltma nesne oluşturma, arama önce gerekli tüm özellikleri belirtmelisinizCreateyöntem, nesne.Yeni bir çoğaltma nesnesi için özellikleri ayarlama hakkında daha fazla bilgi için bkz:Nasıl Yapılır: Yayımlama ve Dağıtım (RMO programlama) yapılandırın..

Varolan çoğaltma nesneleri için özellikleri ayarlama

Bağlı nesne sunucuda varolan çoğaltma nesnelerin bazılarını veya tümünü özelliklerini değiştirme yeteneği RMO destekleyebilir.Yalnızca yazılabilir veya ayarlanabilir özellikleri değiştirilebilir.Özellikleri, ya da değiştirilebilir önceLoadya daLoadProperties()yöntem gerekir adlı alma geçerli özellikleri arasında.Bu yöntemleri çağırmadan, varolan bir nesneye değiştirilen gösterir.

Yürütme moduna bağlı sunucu için varsayılan olarak, nesne özelliklerini değiştirirken, RMO bu değişiklikleri kaydederServerConnectionkullanılan.The IsExistingObject() method can be used to verify that an object exists at the server before attempting to retrieve or change its properties.çoğaltma nesnesinin özelliklerini değiştirme hakkında daha fazla bilgi için bkz:Nasıl Yapılır: Görüntüleme ve Yayımcı ve dağıtımcı Properties (RMO programlama) Değiştir.

Not

Birden çok RMO istemci veya RMO programlama nesnenin birden çok kopyası sunucuda aynı çoğaltma nesneye erişirkenRefreshRMO nesnesinin yöntem adlı geçerli durumu nesnede temel özellikleri güncelleştirmek için.

Önbelleğe alma özellik değişiklikleri

,SqlExecutionModesözellik kümeCaptureSql()tümTransact-SQLifadeleri RMO tarafından oluşturulmuş yakalanan, bunlar yürütülen el ile tek toplu iş iş işlemi kullanarak bir yürütme yöntemleri.RMO sağlayan özellik değişikliklerini önbellek ve bunları birlikte tek bir toplu iş kullanarak kayıtCommitPropertyChanges()yöntem, nesne.Olarak önbellek özellik,CachePropertyChanges()nesnenin özellik ayarlanmalıdırtrue.RMO, özellik değişiklikleri önbelleğe alma,ServerConnectionnesne hala denetler, değişiklikler için gönderilir.Önbelleğe alma, çoğaltma nesnesinin özellik değişiklikleri hakkında daha fazla bilgi için bkz:Nasıl Yapılır: Görüntüleme ve Yayımcı ve dağıtımcı Properties (RMO programlama) Değiştir.

Important noteImportant Note:

DeServerConnectionsınıf bildirmek açık hareketleri, özellikler, ayarlama gibi işlemleri iç çoğaltma hareketleriyle engel, önceden tahmin edilemeyen sonuçlar üretmek ve destekler. kullanılmalıdır RMO.

Örnek

Bu örnek, önbelleğe alma özellik değişiklikleri gösterir.Bir işlemsel yayım özniteliklerinde değişiklik yapılan değişiklikler, açıkça sunucuya gönderilen kadar önbelleğe alınır.