Aracılığıyla paylaş


Çoğaltma Management Objects kavramları

Çoğaltma Yönetimi Nesneleri'ni (rmo) olduğu için çoğaltma işlevleri kapsülleyen bir yönetilen kod derleme SQL Server. rmo tarafından gerçekleştirilir Microsoft.SqlServer.Replicationnamespace.

Aşağıdaki konular, çoğaltma görevleri program aracılığıyla denetlemek için rmo nasıl kullanabileceğinizi açıklar:

rmo programlama giriş

rmo tüm yönleriyle programlama için tasarlanmış SQL Serverçoğaltma. rmo isim Microsoft.SqlServer.Replication, ve hangi Microsoft.SqlServer.Rmo.dll tarafından uygulandığı bir Microsoft.net Framework Derleme. Ayrıca ait Microsoft.SqlServer.Replication.dll Meclis Microsoft.SqlServer.Replicationad alanını uygulayan çeşitli çoğaltma aracıları (anlık görüntü Aracısı, Dağıtım Aracısı ve Birleştirme Aracısı) programlama için bir yönetilen kod arabirimi. Sınıflardan abonelikleri eşitlemek için rmo erişilebilir. Sınıflar içinde Microsoft.SqlServer.Replication.BusinessLogicSupportMicrosoft.SqlServer.Replication.BusinessLogicSupport.dll Kurul tarafından uygulanan ad, özel iş mantığı için birleştirme çoğaltması oluşturmak için kullanılır. Bu derleme rmo bağımsızdır.

rmo üzerinde tabanlı uygulamalarını dağıtma

rmo çoğaltma ve tüm sürümleriyle İstemci Bağlanabilirlik Bileşenleri bağlı SQL ServerSQL Server Compact hariç. rmo üzerinde tabanlı bir uygulamayı dağıtmak için bir sürümünü yüklemeniz gerekir SQL Serveriçeren çoğaltma bileşenleri ve istemci bağlantı bileşenlerini uygulama çalışır bilgisayar.

rmo ile Başlarken

Bu bölümde basit rmo proje kullanmaya başlamak açıklar MicrosoftVisual Studio.

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

  1. Visual Studio başlatın.

  2. Tarih dosyasını menüsünden tıklatın Yeniproje. Yeni bir proje iletişim kutusu görüntülenir.

  3. İçinde Proje türleri Seç iletişim kutusunda Visual C# Projects. İçinde Templates bölmesinde seçin Windows Application.

  4. (İsteğe bağlı) İçinde ad, yeni uygulamanın adını yazın.

  5. Tıklayın Tamam Visual C# Windows şablon yüklemek için.

  6. Tarih Proje Seç menüsünden Add Reference madde. Add Reference iletişim kutusu görüntülenir.

  7. Aşağıdaki derlemeler listesinde seçin .net sekmesini tıklatıp ardından Tamam.

    • Microsoft.SqlServer.Replication.net programlama arabirimi

    • 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. Adımı yineleyin. Tıklayın göz sekmesinde, gidin C:\Program Files\Microsoft SQL Server\110\com, Microsoft.SqlServer.Replication.BusinessLogicSupport.dll, seçin ve tıklatın Tamam.

  9. Tarih View menüsünden tıklatın kod.

  10. Aşağıdaki kod, ad alanı bildirimi önce yazın usingrmo ad türleri nitelemek 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; 
    
    // 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 oluşturmak için.net projesi

  1. Visual Studio başlatın.

  2. Tarih dosyası Seç menüsünden Yeni bir proje. Yeni bir proje iletişim kutusu görüntülenir.

  3. Project Types bölmesinde seçin Visual Basic. Projectşablonları bölmesinde seçin Windows Application.

  4. (İsteğe bağlı) İçinde ad yeni uygulamanın adını yazın.

  5. Tıklayın Tamam Visual Basic Windows şablon yüklemek için.

  6. Tarih Proje Seç menüsünden Add Reference. Add Reference iletişim kutusu görüntülenir.

  7. Aşağıdaki derlemeler listesinde seçin .net sekmesini tıklatıp ardından Tamam.

    • Microsoft.SqlServer.Replication.net programlama arabirimi

    • 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. Adımı yineleyin. Tıklayın göz sekmesinde, gidin C:\Program Files\Microsoft SQL Server\110\com, Microsoft.SqlServer.Replication.BusinessLogicSupport.dll, seçin ve tıklatın Tamam.

  9. Tarih View menüsünden tıklatın kod.

  10. Aşağıdaki kodu, tüm bildirimlerden önce yazın Importsrmo ad türleri nitelemek için deyimleri.

    ' 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 
    
    ' 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 sunucuya bağlanma

rmo programlama nesneleri gerektiren bir bağlantı örneğini SQL Serverörneği kullanılarak yapılan ServerConnectionsınıfını Bu sunucuya herhangi rmo programlama nesneleri bağımsız olarak yapılır. O sonra rmo nesnesi örneğini oluşturma sırasında veya atamaya geçirilen ConnectionContextözelliği nesnenin. Bu şekilde oluşturulan ve ayrı ayrı yönetilen bir rmo programlama nesnesi ve bağlantı nesne örnekleri ve tek bağlantı nesnesi ile birden fazla rmo programlama nesneleri yeniden kullanılabilir. Bir çoğaltma sunucuya bağlantılar için aşağıdaki kurallar geçerlidir:

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

  • Her örneği için bir bağlantı SQL Serverkendi olmalıdır ServerConnectionnesnesini.

  • ServerConnectionNesne için atanmış olduğunu ConnectionContextnesne programlama rmo özelliği oluşturulan veya sunucuda erişilen.

  • ConnectYöntemi sunucu bağlantısı açar. Herhangi rmo programlama nesneleri bağlantı kullanarak sunucuya erişen tüm yöntemleri çağırmadan önce bu yöntemi çağrılmalıdır.

  • Çünkü rmo ve SQL ServerManagement Objects (smo) her ikisi de ServerConnectionbağlantılar için sınıf SQL Server, aynı bağlantı-ebilmek var olmak kullanılmış-e rmo ve smo nesneleri tarafından. Daha fazla bilgi için, bkz. SQL Server örneği için bağlanma.

  • Bağlantıyı yapmak ve başarıyla sunucuya oturum açmak için tüm kimlik bilgileri içinde verilir ServerConnectionnesnesini.

  • Windows kimlik doğrulaması, varsayılan değerdir. Kullanmak için SQL Serverkimlik LoginSecureayarlanmalıdır falseve Loginve Passwordgeçerli bir ayarlanmalıdır SQL Serveroturum açma ve parola. Güvenlik kimlik bilgileri gerekir her zaman depolanabilir ve güvenli bir şekilde ele ve çalışma zamanında mümkün olduğunca sağlanan.

  • Çok iş parçacıklı uygulamalar, ayrı bir ServerConnectionher iş parçacığı nesnesi kullanılmalıdır.

Arama Disconnectyöntemi ServerConnectionnesne rmo nesneleri tarafından kullanılan etkin sunucu bağlantıları kapatmak için.

rmo özelliklerini ayarlama

rmo programlama nesnelerin özelliklerini bu çoğaltma nesneleri sunucusu özelliklerini temsil eder. Yeni çoğaltma nesneleri sunucu oluştururken, rmo özelliklerini bu nesneleri tanımlamak için kullanılır. Varolan nesneler için varolan nesnenin özelliklerini yazılabilir veya ayarlanabilir özellikleri değiştirilebilir rmo özelliklerini temsil eder. Özellikler, yeni nesneler veya varolan nesneler üzerinde ayarlanabilir.

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

Yeni bir çoğaltma nesnesi sunucuda oluştururken, arama önce gerekli tüm özelliklerini belirtmelisiniz Createnesne yöntemi. Yeni bir çoğaltma nesnesi için özellikleri ayarlama hakkında daha fazla bilgi için bkz: NIB Configure Publishing and Distribution (RMO Programming).

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

Nesne bağlı sunucuda varolan çoğaltma nesneleri için rmo bazı veya tüm özelliklerini değiştirme özelliğini destekleyebilir. Yalnızca yazılabilir veya ayarlanabilir özellikleri değiştirilebilir. Özellikleri, ya da değiştirilebilmesi için önce Loadya da LoadPropertiesyöntemini çağıran, geçerli özelliklerini sunucudan almak için. Bu yöntemleri çağırmadan, varolan nesne değiştirilmiş olduğunu gösterir.

Varsayılan nesne özelliklerini değiştirirken, rmo üzerinde yürütme modunu tabanlı sunucu bu değişiklikleri kaydeder ServerConnectionkullanılan. IsExistingObjectYöntemi, nesneyi almak veya özelliklerini değiştirmek denemeden önce sunucuda varlığını doğrulamak için kullanılabilir. Bir çoğaltma nesnesi özelliklerini değiştirme hakkında daha fazla bilgi için bkz: NIB View and Modify Publisher and Distributor Properties (RMO Programming).

[!NOT]

Birden fazla rmo istemcileri veya rmo programlama nesnenin birden çok örneği, sunucuda çoğaltma nesneye erişirken Refreshyöntemi rmo nesnesi, sunucu nesnesinin geçerli durumunu temel özellikleri güncelleştirmek için çağrılabilir.

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

Ne zaman SqlExecutionModesözelliği ayarlanır CaptureSqltüm Transact-SQLböylece onlar el ile tek bir toplu iş yürütme yöntemlerden birini kullanarak çalıştırılabilir rmo tarafından oluşturulan ifadelerini ele geçirdi. rmo sağlar önbelleğe özellik değişikliklerini ve bunları birlikte tek bir toplu işlemi kullanarak taahhüt CommitPropertyChangesnesne yöntemi. Önbellek özellik değişiklikleri, CachePropertyChangesnesnesinin özelliğini ayarlamak true. rmo, özellik değişiklikleri önbelleğe alma ne zaman ServerConnectionnesne hala kontrol değişiklikleri sunucuya gönderildiğinde. Özellik değişiklikleri çoğaltma Nesne Önbelleklemesi hakkında daha fazla bilgi için bkz: NIB View and Modify Publisher and Distributor Properties (RMO Programming).

Önemli notÖnemli

Her ne kadar ServerConnectionsınıf destekler, özelliklerini ayarlarken açık hareketleri bildirme gibi işlemler iç çoğaltma hareketleriyle etkileyebilir, beklenmeyen sonuçlar oluşturabilir ve rmo ile kullanılmamalıdır.

Örnek

Bu örnek, özellik değişiklikleri önbelleği gösterir. Onlar açıkça sunucuya gönderilir kadar işlem yayınına öznitelikleri için yapılan değişiklikleri önbelleğe alınır.

           // Define the server, database, and publication names
            string publisherName = publisherInstance;
            string publicationName = "AdvWorksProductTran";
            string publicationDbName = "AdventureWorks2012";

            TransPublication publication;

            // Create a connection to the Publisher.
            ServerConnection conn = new ServerConnection(publisherName);

            try
            {
                // Connect to the Publisher.
                conn.Connect();

                // Set the required properties for the publication.
                publication = new TransPublication();
                publication.ConnectionContext = conn;
                publication.Name = publicationName;
                publication.DatabaseName = publicationDbName;

                // Explicitly enable caching of property changes on this object.
                publication.CachePropertyChanges = true;

                // If we can't get the properties for this publication, 
                // throw an application exception.
                if (publication.LoadProperties())
                {
                    // Enable support for push subscriptions and disable support 
                    // for pull subscriptions.
                    if ((publication.Attributes & PublicationAttributes.AllowPull) != 0)
                    {
                        publication.Attributes ^= PublicationAttributes.AllowPull;
                    }
                    if ((publication.Attributes & PublicationAttributes.AllowPush) == 0)
                    {
                        publication.Attributes |= PublicationAttributes.AllowPush;
                    }

                    // Send changes to the server.
                    publication.CommitPropertyChanges();
                }
                else
                {
                    throw new ApplicationException(String.Format(
                        "Settings could not be retrieved for the publication. " +
                        "Ensure that the publication {0} exists on {1}.",
                        publicationName, publisherName));
                }
            }
            catch (Exception ex)
            {
                // Do error handling here.
                throw new ApplicationException(
                    "The publication property could not be changed.", ex);
            }
            finally
            {
                conn.Disconnect();
            }

Ayrıca bkz.

Kavramlar

Yineleme sistem saklı yordamlar kavramları

Çoğaltma programlama kavramları