TransPublication Classe

Definição

Representa uma publicação transacional.

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

Exemplos

Este exemplo cria uma publicação transacional.

// Set the Publisher, publication database, and publication names.
string publicationName = "AdvWorksProductTran";
string publicationDbName = "AdventureWorks2012";
string publisherName = publisherInstance;

ReplicationDatabase publicationDb;
TransPublication publication;

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


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

    // Enable the AdventureWorks2012 database for transactional publishing.
    publicationDb = new ReplicationDatabase(publicationDbName, conn);

    // If the database exists and is not already enabled, 
    // enable it for transactional publishing.
    if (publicationDb.LoadProperties())
    {
        if (!publicationDb.EnabledTransPublishing)
        {
            publicationDb.EnabledTransPublishing = true;
        }

        // If the Log Reader Agent does not exist, create it.
        if (!publicationDb.LogReaderAgentExists)
        {
            // Specify the Windows account under which the agent job runs.
            // This account will be used for the local connection to the 
            // Distributor and all agent connections that use Windows Authentication.
            publicationDb.LogReaderAgentProcessSecurity.Login = winLogin;
            publicationDb.LogReaderAgentProcessSecurity.Password = winPassword;

            // Explicitly set authentication mode for the Publisher connection
            // to the default value of Windows Authentication.
            publicationDb.LogReaderAgentPublisherSecurity.WindowsAuthentication = true;

            // Create the Log Reader Agent job.
            publicationDb.CreateLogReaderAgent();
        }
    }
    else
    {
        throw new ApplicationException(String.Format(
            "The {0} database does not exist at {1}.",
            publicationDb, publisherName));
    }

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

    // Specify a transactional publication (the default).
    publication.Type = PublicationType.Transactional;

    // Activate the publication so that we can add subscriptions.
    publication.Status = State.Active;

    // Enable push and pull subscriptions and independent Distribition Agents.
    publication.Attributes |= PublicationAttributes.AllowPull;
    publication.Attributes |= PublicationAttributes.AllowPush;
    publication.Attributes |= PublicationAttributes.IndependentAgent;

    // Specify the Windows account under which the Snapshot Agent job runs.
    // This account will be used for the local connection to the 
    // Distributor and all agent connections that use Windows Authentication.
    publication.SnapshotGenerationAgentProcessSecurity.Login = winLogin;
    publication.SnapshotGenerationAgentProcessSecurity.Password = winPassword;

    // Explicitly set the security mode for the Publisher connection
    // Windows Authentication (the default).
    publication.SnapshotGenerationAgentPublisherSecurity.WindowsAuthentication = true;

    if (!publication.IsExistingObject)
    {
        // Create the transactional publication.
        publication.Create();

        // Create a Snapshot Agent job for the publication.
        publication.CreateSnapshotAgent();
    }
    else
    {
        throw new ApplicationException(String.Format(
            "The {0} publication already exists.", publicationName));
    }
}

catch (Exception ex)
{
    // Implement custom application error handling here.
    throw new ApplicationException(String.Format(
        "The publication {0} could not be created.", publicationName), ex);
}
finally
{
    conn.Disconnect();
}
' Set the Publisher, publication database, and publication names.
Dim publicationName As String = "AdvWorksProductTran"
Dim publicationDbName As String = "AdventureWorks2012"
Dim publisherName As String = publisherInstance

Dim publicationDb As ReplicationDatabase
Dim publication As TransPublication

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

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

    ' Enable the AdventureWorks2012 database for transactional publishing.
    publicationDb = New ReplicationDatabase(publicationDbName, conn)

    ' If the database exists and is not already enabled, 
    ' enable it for transactional publishing.
    If publicationDb.LoadProperties() Then
        If Not publicationDb.EnabledTransPublishing Then
            publicationDb.EnabledTransPublishing = True
        End If

        ' If the Log Reader Agent does not exist, create it.
        If Not publicationDb.LogReaderAgentExists Then
            ' Specify the Windows account under which the agent job runs.
            ' This account will be used for the local connection to the 
            ' Distributor and all agent connections that use Windows Authentication.
            publicationDb.LogReaderAgentProcessSecurity.Login = winLogin
            publicationDb.LogReaderAgentProcessSecurity.Password = winPassword

            ' Explicitly set authentication mode for the Publisher connection
            ' to the default value of Windows Authentication.
            publicationDb.LogReaderAgentPublisherSecurity.WindowsAuthentication = True

            ' Create the Log Reader Agent job.
            publicationDb.CreateLogReaderAgent()
        End If
    Else
        Throw New ApplicationException(String.Format( _
         "The {0} database does not exist at {1}.", _
         publicationDb, publisherName))
    End If

    ' Set the required properties for the transactional publication.
    publication = New TransPublication()
    publication.ConnectionContext = conn
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName

    ' Specify a transactional publication (the default).
    publication.Type = PublicationType.Transactional

    'Enable push and pull subscriptions and independent Distribition Agents.
    publication.Attributes = _
    publication.Attributes Or PublicationAttributes.AllowPull
    publication.Attributes = _
    publication.Attributes Or PublicationAttributes.AllowPush
    publication.Attributes = _
    publication.Attributes Or PublicationAttributes.IndependentAgent

    ' Activate the publication so that we can add subscriptions.
    publication.Status = State.Active

    ' Specify the Windows account under which the Snapshot Agent job runs.
    ' This account will be used for the local connection to the 
    ' Distributor and all agent connections that use Windows Authentication.
    publication.SnapshotGenerationAgentProcessSecurity.Login = winLogin
    publication.SnapshotGenerationAgentProcessSecurity.Password = winPassword

    ' Explicitly set the security mode for the Publisher connection
    ' Windows Authentication (the default).
    publication.SnapshotGenerationAgentPublisherSecurity.WindowsAuthentication = True

    If Not publication.IsExistingObject Then
        ' Create the transactional publication.
        publication.Create()

        ' Create a Snapshot Agent job for the publication.
        publication.CreateSnapshotAgent()
    Else
        Throw New ApplicationException(String.Format( _
            "The {0} publication already exists.", publicationName))
    End If
Catch ex As Exception
    ' Implement custom application error handling here.
    Throw New ApplicationException(String.Format( _
        "The publication {0} could not be created.", publicationName), ex)
Finally
    conn.Disconnect()
End Try

Este exemplo exclui uma publicação transacional.

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

TransPublication publication;
ReplicationDatabase publicationDb;

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

try
{
    conn.Connect();

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

    // Delete the publication, if it exists and has no subscriptions.
    if (publication.LoadProperties() && !publication.HasSubscription)
    {
        publication.Remove();
    }
    else
    {
        // Do something here if the publication does not exist
        // or has subscriptions.
        throw new ApplicationException(String.Format(
            "The publication {0} could not be deleted. " +
            "Ensure that the publication exists and that all " +
            "subscriptions have been deleted.",
            publicationName, publisherName));
    }

    // If no other transactional publications exists,
    // disable publishing on the database.
    publicationDb = new ReplicationDatabase(publicationDbName, conn);
    if (publicationDb.LoadProperties())
    {
        if (publicationDb.TransPublications.Count == 0)
        {
            publicationDb.EnabledTransPublishing = false;
        }
    }
    else
    {
        // Do something here if the database does not exist.
        throw new ApplicationException(String.Format(
            "The database {0} does not exist on {1}.",
            publicationDbName, publisherName));
    }
}
catch (Exception ex)
{
    // Implement application error handling here.
    throw new ApplicationException(String.Format(
        "The publication {0} could not be deleted.",
        publicationName), ex);
}
finally
{
    conn.Disconnect();
}
' Define the Publisher, publication database, 
' and publication names.
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksProductTran"
Dim publicationDbName As String = "AdventureWorks2012"

Dim publication As TransPublication
Dim publicationDb As ReplicationDatabase

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

Try
    conn.Connect()

    ' Set the required properties for the transactional publication.
    publication = New TransPublication()
    publication.ConnectionContext = conn
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName

    ' Delete the publication, if it exists and has no subscriptions.
    If publication.LoadProperties() And Not publication.HasSubscription Then
        publication.Remove()
    Else
        ' Do something here if the publication does not exist
        ' or has subscriptions.
        Throw New ApplicationException(String.Format( _
         "The publication {0} could not be deleted. " + _
         "Ensure that the publication exists and that all " + _
         "subscriptions have been deleted.", _
         publicationName, publisherName))
    End If

    ' If no other transactional publications exists,
    ' disable publishing on the database.
    publicationDb = New ReplicationDatabase(publicationDbName, conn)
    If publicationDb.LoadProperties() Then
        If publicationDb.TransPublications.Count = 0 Then
            publicationDb.EnabledTransPublishing = False
        End If
    Else
        ' Do something here if the database does not exist.
        Throw New ApplicationException(String.Format( _
         "The database {0} does not exist on {1}.", _
         publicationDbName, publisherName))
    End If
Catch ex As Exception
    ' Implement application error handling here.
    Throw New ApplicationException(String.Format( _
     "The publication {0} could not be deleted.", _
     publicationName), ex)
Finally
    conn.Disconnect()
End Try

Comentários

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

TransPublication()

Cria uma nova instância da classe TransPublication.

TransPublication(String, String, ServerConnection)

Cria uma nova instância da classe TransPublication com as opções necessárias.

TransPublication(String, String, ServerConnection, Boolean)

Cria uma nova instância da classe TransPublication com as propriedades necessárias e indica se o trabalho do Agente de Instantâneo para a publicação é criado.

Propriedades

AltSnapshotFolder

Obtém ou define o local do arquivo de instantâneo alternativo para uma publicação.

(Herdado de Publication)
Attributes

Obtém ou define os atributos da publicação.

(Herdado de Publication)
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)
CompatibilityLevel

Obtém ou define a versão mais antiga do Microsoft SQL Server em execução nos Assinantes aos quais a publicação referenciada pode dar suporte.

(Herdado de Publication)
ConflictPolicy

Obtém ou define a política de conflito para publicações que dão suporte à atualização de assinaturas.

ConflictRetention

Obtém ou define o número de dias pelos quais as linhas de dados de conflito são retidas em tabelas de conflito.

(Herdado de Publication)
ConnectionContext

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

(Herdado de ReplicationObject)
ContinueOnConflict

Determina se o Agente de Distribuição deve continuar processando alterações depois da detecção de um conflito.

CreateSnapshotAgentByDefault

Obtém ou define se o trabalho do Agente de Instantâneo é adicionado automaticamente quando a publicação é criada.

(Herdado de Publication)
DatabaseName

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

(Herdado de Publication)
Description

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

(Herdado de Publication)
FtpAddress

Obtém ou define o endereço do computador do servidor de protocolo FTP para publicações que permitem inicialização de assinatura por FTP.

(Herdado de Publication)
FtpLogin

Obtém ou define o logon usado para conexão com o servidor de protocolo FTP para publicações que permitem inicialização de assinatura por FTP.

(Herdado de Publication)
FtpPassword

Define a senha do logon usado para conexão com o servidor de protocolo FTP para publicações que permitem inicialização de assinatura por FTP.

(Herdado de Publication)
FtpPort

Obtém ou define a porta do computador do servidor de protocolo FTP para publicações que permitem inicialização de assinatura por FTP.

(Herdado de Publication)
FtpSubdirectory

Obtém ou define o subdiretório no servidor de protocolo FTP para publicações que permitem inicialização de assinatura por FTP.

(Herdado de Publication)
HasSubscription

Obtém se a publicação tem uma ou mais assinaturas.

(Herdado de Publication)
IsExistingObject

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

(Herdado de ReplicationObject)
Name

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

(Herdado de Publication)
PeerConflictDetectionEnabled

Define se a detecção de conflitos ponto a ponto foi habilitada usando SetPeerConflictDetection(Boolean, Int32).

PeerOriginatorID

Obtém a ID de um nó em uma topologia ponto a ponto. Essa ID será usada para a detecção de conflitos se PeerConflictDetectionEnabled estiver definido como true.

PostSnapshotScript

Obtém ou define o nome e o caminho completo de um arquivo de script Transact-SQL executado após o instantâneo inicial ser aplicado ao Assinante.

(Herdado de Publication)
PreSnapshotScript

Obtém ou define o nome e o caminho completo de um arquivo de script Transact-SQL executado antes que o instantâneo inicial seja aplicado ao Assinante.

(Herdado de Publication)
PubId

Obtém o valor que identifica exclusivamente a publicação.

(Herdado de Publication)
PublisherName

Obtém ou define o nome do Publicador não SQL Server.

QueueType

Obtém ou define o tipo de fila a ser usada para publicações que permitem atualizações de assinaturas enfileiradas.

ReplicateDdl

Obtém ou define as opções de replicação de DDL (linguagem de definição de dados) que determinam se as alterações de DDL são replicadas.

(Herdado de Publication)
RetentionPeriod

Obtém ou define o período de tempo antes do qual uma assinatura expirará quando a assinatura não estiver sincronizada com a publicação.

(Herdado de Publication)
SecureFtpPassword

Define a senha (como um objeto SecureString) do logon usado para conexão com o servidor de protocolo FTP para publicações que permitem inicialização de assinatura por FTP.

(Herdado de Publication)
SnapshotAgentExists

Obtém se o trabalho SQL Server Agent existe para gerar o instantâneo inicial para esta publicação.

(Herdado de Publication)
SnapshotAvailable

Define se os arquivos de instantâneo desta publicação estão disponíveis para uso.

SnapshotGenerationAgentProcessSecurity

Obtém um objeto que define a conta do Windows sob a qual o trabalho do Snapshot Agent é executado.

(Herdado de Publication)
SnapshotGenerationAgentPublisherSecurity

Obtém o contexto de segurança usado pelo Snapshot Agent para conexão com o Publicador.

(Herdado de Publication)
SnapshotJobId

Obtém a ID do trabalho do Snapshot Agent para a publicação atual.

(Herdado de Publication)
SnapshotMethod

Obtém ou define o formato do arquivo de dados do instantâneo inicial.

(Herdado de Publication)
SnapshotSchedule

Obtém um objeto que define a agenda do Snapshot Agent para a publicação atual.

(Herdado de Publication)
SqlServerName

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

(Herdado de ReplicationObject)
Status

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

(Herdado de Publication)
TransArticles

Representa os artigos na publicação.

TransSubscriptions

Representa as assinaturas da publicação.

Type

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

(Herdado de Publication)
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)

Métodos

BrowseSnapshotFolder(String, String)

Retorna o caminho completo do local onde arquivos de instantâneo foram gerados para uma assinatura específica.

CheckValidCreation()

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

(Herdado de ReplicationObject)
CheckValidDefinition(Boolean)

Indica se a validade da definição deve ser verificada.

(Herdado de Publication)
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)
CopySnapshot(String, String, String)

Copia os últimos arquivos de instantâneo de uma assinatura específica em uma pasta de destino.

Create()

Cria a publicação.

(Herdado de Publication)
CreateSnapshotAgent()

Cria o trabalho SQL Server Agent usado para gerar o instantâneo inicial para a publicação, se esse trabalho ainda não existir.

(Herdado de Publication)
Decouple()

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

(Herdado de ReplicationObject)
EnumArticles()

Retorna os artigos da publicação.

(Herdado de Publication)
EnumPublicationAccesses(Boolean)

Retorna os logons que têm acesso ao Publicador.

(Herdado de Publication)
EnumSubscriptions()

Retorna as assinaturas que assinam a publicação.

(Herdado de Publication)
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)
GrantPublicationAccess(String)

Adiciona o logon especificado à PAL (lista de acesso à publicação).

(Herdado de Publication)
InternalRefresh(Boolean)

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

(Herdado de ReplicationObject)
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)
MakePullSubscriptionWellKnown(String, String, SubscriptionSyncType, TransSubscriberType)

Registra uma assinatura pull no Publicador.

MakePullSubscriptionWellKnown(String, String, SubscriptionSyncType, TransSubscriberType, Boolean)

Representa uma publicação transacional.

PostTracerToken()

Posta um token de rastreamento no log do Publicador para começar o processo de determinação da latência.

Refresh()

Recarrega as propriedades do objeto.

(Herdado de ReplicationObject)
RefreshSubscriptions()

Atualiza todas as assinaturas em uma publicação para incluir qualquer artigo recém-adicionado.

ReinitializeAllSubscriptions()

Marca todas as assinaturas na publicação para reinicialização.

ReinitializeAllSubscriptions(Boolean)

Marca todas as assinaturas na publicação para reinicialização, com a opção de invalidar um instantâneo existente.

Remove()

Remove uma publicação existente.

(Herdado de Publication)
Remove(Boolean)

Remove uma publicação existente se o Distribuidor não puder ser acessado.

(Herdado de Publication)
RemovePullSubscription(String, String)

Remove o registro de uma assinatura pull no Publicador.

ReplicateUserDefinedScript(String)

Replica a execução de um script definido pelo usuário nos Assinantes de uma publicação especificada.

(Herdado de Publication)
RevokePublicationAccess(String)

remove o logon especificado da PAL (lista de acesso à publicação).

(Herdado de Publication)
Script(ScriptOptions)

Gera um script Transact-SQL que pode ser usado para recriar a publicação conforme especificado pelas opções de script.

(Herdado de Publication)
SetPeerConflictDetection(Boolean, Int32)

Habilita ou desabilita a detecção de conflitos para um nó em uma topologia ponto a ponto.

StartSnapshotGenerationAgentJob()

Inicia o trabalho que gera o instantâneo inicial para a publicação.

(Herdado de Publication)
StopSnapshotGenerationAgentJob()

Tenta interromper um trabalho do Snapshot Agent em execução.

(Herdado de Publication)
ValidatePublication(ValidationOption, ValidationMethod, Boolean)

Invoca a validação de publicação embutida de todas as assinaturas.

ValidateSubscriptions(String[], String[], ValidationOption, ValidationMethod, Boolean)

Invoca a validação de publicação embutida da assinatura especificada.

Aplica-se a

Confira também