Partilhar via


TransSynchronizationAgent Classe

Definição

Fornece a funcionalidade do Replication Distribution Agent.

public ref class TransSynchronizationAgent : MarshalByRefObject, IDisposable, Microsoft::SqlServer::Replication::ITransSynchronizationAgent
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)]
[System.Runtime.InteropServices.ComSourceInterfaces(typeof(Microsoft.SqlServer.Replication.IComStatusEvent))]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Runtime.InteropServices.Guid("adeda98a-bdfc-4029-b6fb-991d6b468395")]
public class TransSynchronizationAgent : MarshalByRefObject, IDisposable, Microsoft.SqlServer.Replication.ITransSynchronizationAgent
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)>]
[<System.Runtime.InteropServices.ComSourceInterfaces(typeof(Microsoft.SqlServer.Replication.IComStatusEvent))>]
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Runtime.InteropServices.Guid("adeda98a-bdfc-4029-b6fb-991d6b468395")>]
type TransSynchronizationAgent = class
    inherit MarshalByRefObject
    interface IDisposable
    interface ITransSynchronizationAgent
Public Class TransSynchronizationAgent
Inherits MarshalByRefObject
Implements IDisposable, ITransSynchronizationAgent
Herança
TransSynchronizationAgent
Atributos
Implementações

Exemplos

No exemplo a seguir, o Synchronize método é chamado na instância da TransSynchronizationAgent classe que é acessada da SynchronizationAgent propriedade para sincronizar a assinatura push.

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

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

TransSubscription subscription;

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

    // Define the push subscription.
    subscription = new TransSubscription();
    subscription.ConnectionContext = conn;
    subscription.DatabaseName = publicationDbName;
    subscription.PublicationName = publicationName;
    subscription.SubscriptionDBName = subscriptionDbName;
    subscription.SubscriberName = subscriberName;

    // If the push subscription exists, start the synchronization.
    if (subscription.LoadProperties())
    {
        // Check that we have enough metadata to start the agent.
        if (subscription.SubscriberSecurity != null)
        {
            // Synchronously start the Distribution Agent for the subscription.
            subscription.SynchronizationAgent.Synchronize();
        }
        else
        {
            throw new ApplicationException("There is insufficent metadata to " +
                "synchronize the subscription. Recreate the subscription with " +
                "the agent job or supply the required agent properties at run time.");
        }
    }
    else
    {
        // Do something here if the push subscription does not exist.
        throw new ApplicationException(String.Format(
            "The subscription to '{0}' does not exist on {1}",
            publicationName, subscriberName));
    }
}
catch (Exception ex)
{
    // Implement appropriate error handling here.
    throw new ApplicationException("The subscription could not be synchronized.", ex);
}
finally
{
    conn.Disconnect();
}
' Define the server, publication, and database names.
Dim subscriberName As String = subscriberInstance
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksProductTran"
Dim subscriptionDbName As String = "AdventureWorks2012Replica"
Dim publicationDbName As String = "AdventureWorks2012"

' Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(publisherName)

Dim subscription As TransSubscription

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

    ' Define the push subscription.
    subscription = New TransSubscription()
    subscription.ConnectionContext = conn
    subscription.DatabaseName = publicationDbName
    subscription.PublicationName = publicationName
    subscription.SubscriptionDBName = subscriptionDbName
    subscription.SubscriberName = subscriberName

    ' If the push subscription exists, start the synchronization.
    If subscription.LoadProperties() Then
        ' Check that we have enough metadata to start the agent.
        If Not subscription.SubscriberSecurity Is Nothing Then

            ' Synchronously start the Distribution Agent for the subscription.
            subscription.SynchronizationAgent.Synchronize()
        Else
            Throw New ApplicationException("There is insufficent metadata to " + _
             "synchronize the subscription. Recreate the subscription with " + _
             "the agent job or supply the required agent properties at run time.")
        End If
    Else
        ' Do something here if the push subscription does not exist.
        Throw New ApplicationException(String.Format( _
         "The subscription to '{0}' does not exist on {1}", _
         publicationName, subscriberName))
    End If
Catch ex As Exception
    ' Implement appropriate error handling here.
    Throw New ApplicationException("The subscription could not be synchronized.", ex)
Finally
    conn.Disconnect()
End Try

Comentários

A TransSynchronizationAgent classe dá suporte à capacidade de sincronizar programaticamente assinaturas com publicações transacionais ou de instantâneo.

Construtores

TransSynchronizationAgent()

Cria uma instância de TransSynchronizationAgent classe.

Propriedades

AltSnapshotFolder

Obtém ou define a pasta de instantâneo alternativo para a assinatura.

ComErrorCollection

Obtém uma coleção de erros gerados pelo agente de replicação.

Distributor

Obtém ou define o nome da instância do Microsoft SQL Server que está atuando como o distribuidor da assinatura.

DistributorAddress

Obtém ou define o endereço de rede usado na conexão ao distribuidor quando a propriedade DistributorNetwork é especificada.

DistributorEncryptedPassword

Obtém ou define a senha criptografada usada ao se conectar ao distribuidor usando SQL Server Autenticação.

DistributorLogin

Obtém ou define o nome de logon usado ao se conectar ao distribuidor usando SQL Server Autenticação.

DistributorNetwork

Obtém ou define a Biblioteca de Rede cliente usada durante a conexão com o distribuidor.

DistributorPassword

Obtém ou define a senha usada ao se conectar ao Distribuidor usando SQL Server Autenticação.

DistributorSecurityMode

Obtém ou define o modo de segurança usado durante a conexão com o distribuidor.

DtsPackageFileName

Obtém ou define o nome e o caminho de um pacote DTS (Data Transformation Services) do Microsoft SQL Server 2000 usado para transformar conjuntos de linhas de comando antes de elas serem aplicadas a um Assinante.

DtsPackagePassword

Obtém ou define a senha de proprietário usada para acessar o pacote DTS (Serviços de Transformação de Dados) do Microsoft SQL Server 2000 especificado pela DtsPackageFileName propriedade.

FileTransferType

Obtém ou define o modo como os arquivos de instantâneo iniciais são transferidos para o Assinante.

HostName

Obtém ou define o nome de host usado.

LastUpdatedTime

Obtém o carimbo de data/hora do último horário em que o agente de replicação sincronizou a assinatura.

LoginTimeout

Obtém ou define o número máximo de segundos de espera até que as conexões sejam estabelecidas.

MaxDeliveredTransactions

Obtém ou define o número máximo de transações aplicadas ao Assinante durante uma única execução do agente.

Output

Obtém ou define o nome e o caminho do arquivo de saída do agente.

OutputVerboseLevel

Obtém ou define a quantidade de informações registradas em log pelo Agente de Distribuição no arquivo de saída do agente.

ProfileName

Obtém ou define o nome do perfil usado pelo agente.

Publication

Obtém ou define o nome da publicação.

Publisher

Obtém ou define o nome da instância do Microsoft SQL Server que corresponde ao Publicador para a assinatura.

PublisherDatabase

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

QueryTimeout

Obtém ou define o número de segundos permitidos para que as consultas internas sejam concluídas.

SecureDistributorEncryptedPassword

Obtém ou define a senha criptografada segura do distribuidor.

SecureSubscriberEncryptedPassword

Obtém ou define a senha criptografada segura para o assinante.

SkipErrors

Obtém ou define uma lista separada por dois pontos dos números de erros que devem ser ignorados por este agente.

Subscriber

Obtém ou define o nome da instância do Microsoft SQL Server que é o assinante.

SubscriberDatabase

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

SubscriberDatabasePath

Obtém ou define o caminho banco de dados do assinante.

SubscriberDataSourceType

Obtém ou define o tipo de fonte de dados usado como o assinante.

SubscriberEncryptedPassword

Obtém ou define a senha criptografada para o assinante.

SubscriberLogin

Obtém ou define o nome de logon usado ao se conectar ao assinante usando SQL Server Autenticação.

SubscriberPassword

Obtém ou define a senha usada ao se conectar ao assinante usando SQL Server Autenticação.

SubscriberSecurityMode

Obtém ou define o modo de segurança usado durante a conexão com o publicador.

SubscriptionType

Obtém ou define se a assinatura é push ou pull.

UndeliveredCommands

Obtém o número de comandos não entregues.

UndeliveredTransactions

Obtém o número de transações não entregues.

UseInProcLoader

Obtém ou define um valor que indica se o comando BULK INSERT deve ser usado ao aplicar arquivos de instantâneo no assinante.

WorkingDirectory

Obtém ou define o diretório de trabalho a partir do qual os arquivos de instantâneo são acessados quando o protocolo FTP é usado.

Métodos

Abort()

Anula a operação de TransSynchronizationAgent.

Dispose()

Libera todos os recursos usados pela instância atual da classe TransSynchronizationAgent.

Dispose(Boolean)

Libera todos os recursos usados pela classe TransSynchronizationAgent.

Finalize()

Finaliza o TransSynchronizationAgent.

IsSnapshotRequired()

Conecta-se com o Distribuidor e o Assinante para determinar se um novo instantâneo será aplicado durante a próxima sincronização de agente.

Synchronize()

Inicia o Agente de Distribuição para sincronizar a assinatura.

Eventos

ComStatus

Ocorre quando o Agente de Distribuição retorna informações de status Com da sincronização.

Status

Ocorre quando o Agente de Distribuição retorna informações de status de sincronização.

Aplica-se a

Acesso thread-safe

A TransSynchronizationAgent classe não dá suporte a apartamentos multithread. Você pode especificar um apartamento de thread único declarando o [STAThread] atributo no método que é o ponto de entrada principal do aplicativo. Esse é o padrão para aplicativos baseados no Microsoft Windows criados usando o Microsoft Visual Studio.