Partilhar via


TransPullSubscription Classe

Definição

Representa uma assinatura pull para uma publicação transacional.

public ref class TransPullSubscription sealed : Microsoft::SqlServer::Replication::PullSubscription
public sealed class TransPullSubscription : Microsoft.SqlServer.Replication.PullSubscription
type TransPullSubscription = class
    inherit PullSubscription
Public NotInheritable Class TransPullSubscription
Inherits PullSubscription
Herança
TransPullSubscription

Exemplos

// Define the Publisher, publication, and databases.
string publicationName = "AdvWorksProductTran";
string publisherName = publisherInstance;
string subscriberName = subscriberInstance;
string subscriptionDbName = "AdventureWorks2012Replica";
string publicationDbName = "AdventureWorks2012";

//Create connections to the Publisher and Subscriber.
ServerConnection subscriberConn = new ServerConnection(subscriberName);
ServerConnection publisherConn = new ServerConnection(publisherName);

// Create the objects that we need.
TransPublication publication;
TransPullSubscription subscription;

try
{
    // Connect to the Publisher and Subscriber.
    subscriberConn.Connect();
    publisherConn.Connect();

    // Ensure that the publication exists and that 
    // it supports pull subscriptions.
    publication = new TransPublication();
    publication.Name = publicationName;
    publication.DatabaseName = publicationDbName;
    publication.ConnectionContext = publisherConn;

    if (publication.IsExistingObject)
    {
        if ((publication.Attributes & PublicationAttributes.AllowPull) == 0)
        {
            publication.Attributes |= PublicationAttributes.AllowPull;
        }

        // Define the pull subscription.
        subscription = new TransPullSubscription();
        subscription.ConnectionContext = subscriberConn;
        subscription.PublisherName = publisherName;
        subscription.PublicationName = publicationName;
        subscription.PublicationDBName = publicationDbName;
        subscription.DatabaseName = subscriptionDbName;

        // Specify the Windows login credentials for the Distribution Agent job.
        subscription.SynchronizationAgentProcessSecurity.Login = winLogin;
        subscription.SynchronizationAgentProcessSecurity.Password = winPassword;

        // Make sure that the agent job for the subscription is created.
        subscription.CreateSyncAgentByDefault = true;

        // By default, subscriptions to transactional publications are synchronized 
        // continuously, but in this case we only want to synchronize on demand.
        subscription.AgentSchedule.FrequencyType = ScheduleFrequencyType.OnDemand;

        // Create the pull subscription at the Subscriber.
        subscription.Create();

        Boolean registered = false;

        // Verify that the subscription is not already registered.
        foreach (TransSubscription existing
            in publication.EnumSubscriptions())
        {
            if (existing.SubscriberName == subscriberName
                && existing.SubscriptionDBName == subscriptionDbName)
            {
                registered = true;
            }
        }
        if (!registered)
        {
            // Register the subscription with the Publisher.
            publication.MakePullSubscriptionWellKnown(
                subscriberName, subscriptionDbName,
                SubscriptionSyncType.Automatic,
                TransSubscriberType.ReadOnly);
        }
    }
    else
    {
        // Do something here if the publication does not exist.
        throw new ApplicationException(String.Format(
            "The publication '{0}' does not exist on {1}.",
            publicationName, publisherName));
    }
}
catch (Exception ex)
{
    // Implement the appropriate error handling here.
    throw new ApplicationException(String.Format(
        "The subscription to {0} could not be created.", publicationName), ex);
}
finally
{
    subscriberConn.Disconnect();
    publisherConn.Disconnect();
}
' Define the Publisher, publication, and databases.
Dim publicationName As String = "AdvWorksProductTran"
Dim publisherName As String = publisherInstance
Dim subscriberName As String = subscriberInstance
Dim subscriptionDbName As String = "AdventureWorks2012Replica"
Dim publicationDbName As String = "AdventureWorks2012"

'Create connections to the Publisher and Subscriber.
Dim subscriberConn As ServerConnection = New ServerConnection(subscriberName)
Dim publisherConn As ServerConnection = New ServerConnection(publisherName)

' Create the objects that we need.
Dim publication As TransPublication
Dim subscription As TransPullSubscription

Try
    ' Connect to the Publisher and Subscriber.
    subscriberConn.Connect()
    publisherConn.Connect()

    ' Ensure that the publication exists and that 
    ' it supports pull subscriptions.
    publication = New TransPublication()
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName
    publication.ConnectionContext = publisherConn

    If publication.IsExistingObject Then
        If (publication.Attributes And PublicationAttributes.AllowPull) = 0 Then
            publication.Attributes = publication.Attributes _
            Or PublicationAttributes.AllowPull
        End If

        ' Define the pull subscription.
        subscription = New TransPullSubscription()
        subscription.ConnectionContext = subscriberConn
        subscription.PublisherName = publisherName
        subscription.PublicationName = publicationName
        subscription.PublicationDBName = publicationDbName
        subscription.DatabaseName = subscriptionDbName
        subscription.Description = "Pull subscription to " + publicationDbName _
        + " on " + subscriberName + "."

        ' Specify the Windows login credentials for the Distribution Agent job.
        subscription.SynchronizationAgentProcessSecurity.Login = winLogin
        subscription.SynchronizationAgentProcessSecurity.Password = winPassword

        ' Make sure that the agent job for the subscription is created.
        subscription.CreateSyncAgentByDefault = True

        ' By default, subscriptions to transactional publications are synchronized 
        ' continuously, but in this case we only want to synchronize on demand.
        subscription.AgentSchedule.FrequencyType = ScheduleFrequencyType.OnDemand

        ' Create the pull subscription at the Subscriber.
        subscription.Create()

        Dim registered As Boolean = False

        ' Verify that the subscription is not already registered.
        For Each existing As TransSubscription In publication.EnumSubscriptions()
            If existing.SubscriberName = subscriberName And _
                existing.SubscriptionDBName = subscriptionDbName Then
                registered = True
            End If
        Next existing
        If Not registered Then
            ' Register the subscription with the Publisher.
            publication.MakePullSubscriptionWellKnown( _
             subscriberName, subscriptionDbName, _
             SubscriptionSyncType.Automatic, _
             TransSubscriberType.ReadOnly)
        End If
    Else
        ' Do something here if the publication does not exist.
        Throw New ApplicationException(String.Format( _
         "The publication '{0}' does not exist on {1}.", _
         publicationName, publisherName))
    End If
Catch ex As Exception
    ' Implement the appropriate error handling here.
    Throw New ApplicationException(String.Format( _
        "The subscription to {0} could not be created.", publicationName), ex)
Finally
    subscriberConn.Disconnect()
    publisherConn.Disconnect()
End Try

Comentários

Para uma assinatura pull, o Agente de Distribuição é executado no Assinante.

Acesso thread-safe

Todos os membros estáticos públicos (Shared no Microsoft Visual Basic) desse tipo são seguros para operações multithread. Não há garantia de que qualquer membro de instância seja seguro para threads.

Construtores

TransPullSubscription()

Cria uma nova instância da classe TransPullSubscription.

TransPullSubscription(String, String, String, String, ServerConnection)

Cria uma nova instância da classe TransPullSubscription com as propriedades que definem uma assinatura pull.

TransPullSubscription(String, String, String, String, ServerConnection, Boolean)

Cria uma nova instância da classe TransPullSubscription com as propriedades que definem uma assinatura pull e define se o trabalho de agente deve ser criado para a assinatura.

Propriedades

AgentJobId

Obtém a ID do trabalho de agente usado para sincronizar a assinatura.

(Herdado de PullSubscription)
AgentOffload

Obtém ou define se o Agente de Sincronização é executado em um computador diferente do computador em que o trabalho do agente foi criado. Essa propriedade não tem mais suporte para Distribuidores que executam o Microsoft SQL Server 2005 e posterior.

(Herdado de PullSubscription)
AgentOffloadServer

Obtém ou define o nome do computador remoto no qual o agente é executado ao usar a ativação de agente remota.

(Herdado de PullSubscription)
AgentSchedule

Obtém a agenda do trabalho de agente a ser usada para sincronizar a assinatura.

(Herdado de PullSubscription)
AltSnapshotFolder

Obtém ou define o local onde os arquivos de instantâneo de publicação são obtidos quando o local de instantâneo padrão no Distribuidor não é usado.

(Herdado de PullSubscription)
Attributes

Obtém ou define os atributos de uma publicação transacional que têm suporte da assinatura.

CachePropertyChanges

Obtém ou define se as alterações feitas às propriedades de replicação devem ser armazenadas em cache ou aplicadas imediatamente.

(Herdado de ReplicationObject)
ConnectionContext

Obtém ou define a conexão com uma instância do Microsoft SQL Server.

(Herdado de ReplicationObject)
CreateSyncAgentByDefault

Obtém ou define se o trabalho de agente usado para iniciar o Agente de Replicação para sincronizar a assinatura é criado quando a assinatura é criada.

(Herdado de PullSubscription)
DatabaseName

Obtém ou define o nome do banco de dados de assinatura.

(Herdado de PullSubscription)
Description

Obtém ou define uma descrição textual da assinatura pull.

(Herdado de PullSubscription)
DistributorName

Obtém ou define a instância do Microsoft SQL Server que é o Distribuidor e está distribuindo a publicação à qual a assinatura assina.

(Herdado de PullSubscription)
DistributorSecurity

Obtém o contexto de segurança usado para conectar ao Distribuidor.

(Herdado de PullSubscription)
DtsPackageLocation

Obtém ou define o local do pacote de DTS (Data Transformation Services) usado com uma assinatura transformável.

DtsPackageName

Obtém ou define o nome do pacote de DTS (Data Transformation Services) usado em uma assinatura transformável.

DtsPackagePassword

Obtém ou define a senha usada com uma assinatura transformável.

EnabledForSynchronizationManager

Especifica se a assinatura pode ser sincronizada através do Gerenciador de Sincronização do Windows.

(Herdado de PullSubscription)
FtpAddress

Obtém ou define o endereço IP do servidor de FTP.

(Herdado de PullSubscription)
FtpLogin

Obtém ou define o logon do FTP.

(Herdado de PullSubscription)
FtpPassword

Obtém ou define a senha de FTP.

(Herdado de PullSubscription)
FtpPort

Obtém ou define o número da porta do servidor de FTP.

(Herdado de PullSubscription)
IsExistingObject

Especifica se o objeto existe no servidor ou não.

(Herdado de ReplicationObject)
IsMemoryOptimized

Representa uma assinatura pull para uma publicação transacional.

(Herdado de PullSubscription)
LastAgentDateTime

Obtém a data e a hora em que a assinatura foi sincronizada pela última vez.

(Herdado de PullSubscription)
LastAgentStatus

Obtém o status da sincronização de assinatura mais recente.

(Herdado de PullSubscription)
LastAgentSummary

Obtém um resumo do resultado da sincronização de assinatura mais recente.

(Herdado de PullSubscription)
LastSummaryDateTime

Obtém a data e a hora da conclusão da última sincronização.

MemoryOptimized

Representa uma assinatura pull para uma publicação transacional.

Name

Obtém o nome gerado para a assinatura pull.

(Herdado de PullSubscription)
PublicationDBName

Obtém ou define o nome do banco de dados de publicação.

(Herdado de PullSubscription)
PublicationName

Obtém ou define o nome da publicação à qual a assinatura assina.

(Herdado de PullSubscription)
PublisherName

Obtém ou define o nome do Publicador.

(Herdado de PullSubscription)
PublisherSecurity

Obtém ou define o contexto de segurança usado pelo Agente de Sincronização durante a conexão com o Publicador.

(Herdado de PullSubscription)
SecureFtpPassword

Obtém ou define a senha segura do logon usado para conexão com o servidor de FTP.

(Herdado de PullSubscription)
SqlServerName

Obtém o nome da instância do Microsoft SQL Server à qual esse objeto está conectado.

(Herdado de ReplicationObject)
SubscriberSecurity

Obtém ou define o contexto de segurança usado pelo Agente de Sincronização durante a conexão com o Assinante.

(Herdado de PullSubscription)
SubscriberType

Obtém ou define o comportamento de atualização da assinatura.

SubscriptionId

Obtém o valor da ID da assinatura.

(Herdado de PullSubscription)
SubscriptionType

Determina se o registro de assinatura é push ou pull ou anônimo.

(Herdado de PullSubscription)
SynchronizationAgent

Obtém um objeto que representa uma instância do Agente de Distribuição que pode ser usado para sincronizar a assinatura.

SynchronizationAgentProcessSecurity

Obtém o contexto de segurança usado para especificar a conta do Microsoft Windows na qual o trabalho do Synchronization Agent é executado para sincronizar a assinatura.

(Herdado de PullSubscription)
Type

Obtém ou define o tipo de publicação.

(Herdado de PullSubscription)
UseFtp

Obtém ou define se os arquivos de instantâneo necessários para inicializar a assinatura pull são acessados pelo Agente de Sincronização usando o Protocolo FTP.

(Herdado de PullSubscription)
UserData

Obtém ou define uma propriedade de objeto que permite que os usuários anexem seus próprios dados ao objeto.

(Herdado de ReplicationObject)
WorkingDirectory

Obtém ou define o caminho do diretório no Assinante utilizado para armazenar temporariamente e descompactar arquivos de instantâneo baixados.

(Herdado de PullSubscription)

Métodos

CheckValidCreation()

Verifica a criação de replicação válida.

(Herdado de ReplicationObject)
CheckValidDefinition(Boolean)

Indica se a definição é válida.

(Herdado de PullSubscription)
CommitPropertyChanges()

Envia todas as instruções de alteração de propriedade armazenadas em cache para a instância do Microsoft SQL Server.

(Herdado de ReplicationObject)
Create()

Cria a assinatura pull para o Assinante.

(Herdado de PullSubscription)
CustomEnabledForSyncMgr(StringBuilder)

Permite a publicação personalizada para o gerenciador síncrono.

(Herdado de PullSubscription)
Decouple()

Desacopla o objeto de replicação referenciado do servidor.

(Herdado de ReplicationObject)
DoUpdateMemoryOptimizedProperty(String)

Representa uma assinatura pull para uma publicação transacional.

GetChangeCommand(StringBuilder, String, String)

Retorna o comando change da replicação.

(Herdado de ReplicationObject)
GetCreateCommand(StringBuilder, Boolean, ScriptOptions)

Retorna o comando create da replicação.

(Herdado de ReplicationObject)
GetDropCommand(StringBuilder, Boolean)

Retorna o comando drop da replicação.

(Herdado de ReplicationObject)
InitMemberVariables(String, String, String, String, Boolean)

Inicializa as variáveis de membro.

(Herdado de PullSubscription)
InternalRefresh(Boolean)

Inicia uma atualização interna da replicação.

(Herdado de ReplicationObject)
LastAgentJobHistoryInfo()

Retorna informações sobre o último trabalho de Agente de Sincronização executado.

(Herdado de PullSubscription)
Load()

Carrega as propriedades de um objeto existente do servidor.

(Herdado de ReplicationObject)
LoadProperties()

Carrega as propriedades de um objeto existente do servidor.

(Herdado de ReplicationObject)
Refresh()

Recarrega as propriedades do objeto.

(Herdado de ReplicationObject)
Reinitialize()

Marca a assinatura pull para reinicialização.

Remove()

Remove a assinatura pull.

(Herdado de PullSubscription)
Script(ScriptOptions)

Retorna um script Transact-SQL para criar ou excluir a assinatura pull com base na configuração de propriedade atual do PullSubscription objeto.

(Herdado de PullSubscription)
StopSynchronizationJob()

Tenta interromper um trabalho do Agente de Distribuição em execução que está sincronizando a assinatura atualmente.

SynchronizeWithJob()

Inicia o trabalho de agente para sincronizar a assinatura.

Aplica-se a

Confira também