Aracılığıyla paylaş


Nasıl yapılır: Bir abonelik (rmo programlama) yeniden başlatmak

Sonraki eşitleme sırasında yeni bir anlık görüntü sağlamak tek tek abonelikleri reinitialization için işaretlenebilir.Abonelikleri çoğaltma yönetim nesneleri (rmo) kullanarak programlı olarak yeniden.Kullandığınız sınıfları için yayının türüne bağlıdır abonelik ait olduğu ve abonelik türü (yani, bir gönderme veya istek temelli abonelik).

Bir işlem için bir istek temelli abonelik yeniden başlatmak içinyayın

  1. Abone bir bağlantı kullanarak oluşturmak ServerConnection WalkTree

  2. Oluşturma bir örnek , TransPullSubscription , sınıf ve küme PublicationName, DatabaseName, PublisherName, PublicationDBNameve bağlantı için adım 1'den ConnectionContext.

  3. Call LoadProperties yöntem alma özelliklerinin nesne.

    Not

    Bu yöntem döndürür, false, yanlış adım 2'de abonelik özellikleri tanımlanmış veya istek temelli abonelik yok.

  4. Call Reinitialize yöntem.Bu yöntem abonelik reinitialization için işaretler.

  5. istek temelli abonelik eşitleyin.Daha fazla bilgi için bkz: Nasıl yapılır: Çekme abonelik (rmo programlama) Eşitle.

Yeniden başlatmak için bir gönderme temelli abonelik bir işlem yayın için

  1. Bir bağlantı oluşturmak Yayımcı kullanarak ServerConnection WalkTree

  2. Oluşturma bir örnek , TransSubscription , sınıf ve küme PublicationName, DatabaseName, SubscriberName, SubscriptionDBNameve bağlantı için adım 1'den ConnectionContext.

  3. Call LoadProperties yöntem alma özelliklerinin nesne.

    Not

    Bu yöntem döndürür, false, yanlış adım 2'de abonelik özellikleri tanımlanmış veya gönderme temelli abonelik yok.

  4. Call Reinitialize yöntem.Bu yöntem abonelik reinitialization için işaretler.

  5. Eşitleme gönderme temelli abonelik.Daha fazla bilgi için bkz: Nasıl yapılır: İtme aboneliği (rmo programlama) Eşitle.

Bir mektup birleştirme istek temelli abonelik yeniden başlatmak içinyayın

  1. Abone bir bağlantı kullanarak oluşturmak ServerConnection WalkTree

  2. Oluşturma bir örnek , MergePullSubscription , sınıf ve küme PublicationName, DatabaseName, PublisherName, PublicationDBNameve bağlantı için adım 1'den ConnectionContext.

  3. Call LoadProperties yöntem alma özelliklerinin nesne.

    Not

    Bu yöntem döndürür, false, yanlış adım 2'de abonelik özellikleri tanımlanmış veya istek temelli abonelik yok.

  4. Call Reinitialize yöntem.Değeriyle geçirmek true alınanlar veya değeri önce abone adresindeki değişiklikleri karşıya yüklemek için false adresindeki bekleyen değişiklikleri kaybedebilirsiniz ve yeniden başlatmakabone. Bu yöntem abonelik reinitialization için işaretler.

    Not

    Abonelik süresi dolmuşsa değişiklikleri karşıya yüklenemiyor.Daha fazla bilgi için bkz: Birleştirme abonelik süresi doldu ve değişiklikleri karşıya.

  5. istek temelli abonelik eşitleyin.Daha fazla bilgi için bkz: Nasıl yapılır: Çekme abonelik (rmo programlama) Eşitle.

Yeniden başlatmak için bir gönderme temelli abonelik bir birleştirme yayını için

  1. Bir bağlantı oluşturmak Yayımcı kullanarak ServerConnection WalkTree

  2. Oluşturma bir örnek , MergeSubscription , sınıf ve küme PublicationName, DatabaseName, SubscriberName, SubscriptionDBNameve bağlantı için adım 1'den ConnectionContext.

  3. Call LoadProperties yöntem alma özelliklerinin nesne.

    Not

    Bu yöntem döndürür, false, yanlış adım 2'de abonelik özellikleri tanımlanmış veya gönderme temelli abonelik yok.

  4. Call Reinitialize yöntem.Değeriyle geçirmek true alınanlar veya değeri önce abone adresindeki değişiklikleri karşıya yüklemek için false adresindeki bekleyen değişiklikleri kaybedebilirsiniz ve yeniden başlatmakabone. Bu yöntem abonelik reinitialization için işaretler.

    Not

    Abonelik süresi dolmuşsa değişiklikleri karşıya yüklenemiyor.Daha fazla bilgi için bkz: Birleştirme abonelik süresi doldu ve değişiklikleri karşıya.

  5. Eşitleme gönderme temelli abonelik.Daha fazla bilgi için bkz: Nasıl yapılır: İtme aboneliği (rmo programlama) Eşitle.

Örnek

Bu örnek, bir istek temelli abonelik için bir işlem yeniden başlatır yayın.

         // Define server, publication, and database names.
            String subscriberName = subscriberInstance;
            String publisherName = publisherInstance;
            String publicationName = "AdvWorksProductTran";
            String publicationDbName = "AdventureWorks2008R2";
            String subscriptionDbName = "AdventureWorks2008R2Replica";

            // Create a connection to the Subscriber.
            ServerConnection conn = new ServerConnection(subscriberName);

            TransPullSubscription subscription;

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

                // Define subscription properties.
                subscription = new TransPullSubscription();
                subscription.ConnectionContext = conn;
                subscription.DatabaseName = subscriptionDbName;
                subscription.PublisherName = publisherName;
                subscription.PublicationDBName = publicationDbName;
                subscription.PublicationName = publicationName;

                // If the pull subscription and the job exists, mark the subscription
                // for reinitialization and start the agent job.
                if (subscription.LoadProperties() && subscription.AgentJobId != null)
                {
                    subscription.Reinitialize();
                    subscription.SynchronizeWithJob();
                }
                else
                {
                    // Do something here if the subscription does not exist.
                    throw new ApplicationException(String.Format(
                        "A subscription to '{0}' does not exists on {1}",
                        publicationName, subscriberName));
                }
            }
            catch (Exception ex)
            {
                // Do appropriate error handling here.
                throw new ApplicationException("The subscription could not be reinitialized.", ex);
            }
            finally
            {
                conn.Disconnect();
            }
' Define server, publication, and database names.
Dim subscriberName As String = subscriberInstance
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksProductTran"
Dim publicationDbName As String = "AdventureWorks2008R2"
Dim subscriptionDbName As String = "AdventureWorks2008R2Replica"

' Create a connection to the Subscriber.
Dim conn As ServerConnection = New ServerConnection(subscriberName)

Dim subscription As TransPullSubscription

Try
    ' Connect to the Subscriber.
    conn.Connect()

    ' Define subscription properties.
    subscription = New TransPullSubscription()
    subscription.ConnectionContext = conn
    subscription.DatabaseName = subscriptionDbName
    subscription.PublisherName = publisherName
    subscription.PublicationDBName = publicationDbName
    subscription.PublicationName = publicationName

    ' If the pull subscription and the job exists, mark the subscription
    ' for reinitialization and start the agent job.
    If subscription.LoadProperties() And (Not subscription.AgentJobId Is Nothing) Then
        subscription.Reinitialize()
        subscription.SynchronizeWithJob()
    Else
        ' Do something here if the subscription does not exist.
        Throw New ApplicationException(String.Format( _
         "A subscription to '{0}' does not exists on {1}", _
         publicationName, subscriberName))
    End If
Catch ex As Exception
    ' Do appropriate error handling here.
    Throw New ApplicationException("The subscription could not be reinitialized.", ex)
Finally
    conn.Disconnect()
End Try

Bu örnek, bir istek temelli abonelik birleştirme için yeniden başlatır yayın sonra bekleyen değişiklikleri abone adresindeki ilk karşıya yükleniyor.

          // Define server, publication, and database names.
            String subscriberName = subscriberInstance;
            String publisherName = publisherInstance;
            String publicationName = "AdvWorksSalesOrdersMerge";
            String publicationDbName = "AdventureWorks2008R2";
            String subscriptionDbName = "AdventureWorks2008R2Replica";

            // Create a connection to the Subscriber.
            ServerConnection conn = new ServerConnection(subscriberName);

            MergePullSubscription subscription;

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

                // Define subscription properties.
                subscription = new MergePullSubscription();
                subscription.ConnectionContext = conn;
                subscription.DatabaseName = subscriptionDbName;
                subscription.PublisherName = publisherName;
                subscription.PublicationDBName = publicationDbName;
                subscription.PublicationName = publicationName;

                // If the pull subscription and the job exists, mark the subscription
                // for reinitialization after upload and start the agent job.
                if (subscription.LoadProperties() && subscription.AgentJobId != null)
                {
                    subscription.Reinitialize(true);
                    subscription.SynchronizeWithJob();
                }
                else
                {
                    // Do something here if the subscription does not exist.
                    throw new ApplicationException(String.Format(
                        "A subscription to '{0}' does not exists on {1}",
                        publicationName, subscriberName));
                }
            }
            catch (Exception ex)
            {
                // Do appropriate error handling here.
                throw new ApplicationException("The subscription could not be synchronized.", ex);
            }
            finally
            {
                conn.Disconnect();
            }
' Define server, publication, and database names.
Dim subscriberName As String = subscriberInstance
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publicationDbName As String = "AdventureWorks2008R2"
Dim subscriptionDbName As String = "AdventureWorks2008R2Replica"

' Create a connection to the Subscriber.
Dim conn As ServerConnection = New ServerConnection(subscriberName)

Dim subscription As MergePullSubscription

Try
    ' Connect to the Subscriber.
    conn.Connect()

    ' Define subscription properties.
    subscription = New MergePullSubscription()
    subscription.ConnectionContext = conn
    subscription.DatabaseName = subscriptionDbName
    subscription.PublisherName = publisherName
    subscription.PublicationDBName = publicationDbName
    subscription.PublicationName = publicationName

    ' If the pull subscription and the job exists, mark the subscription
    ' for reinitialization after upload and start the agent job.
    If subscription.LoadProperties() And (Not subscription.AgentJobId Is Nothing) Then
        subscription.Reinitialize(True)
        subscription.SynchronizeWithJob()
    Else
        ' Do something here if the subscription does not exist.
        Throw New ApplicationException(String.Format( _
         "A subscription to '{0}' does not exists on {1}", _
         publicationName, subscriberName))
    End If
Catch ex As Exception
    ' Do appropriate error handling here.
    Throw New ApplicationException("The subscription could not be synchronized.", ex)
Finally
    conn.Disconnect()
End Try