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

Segurança de Thread

Qualquer membro público estático (Sharedem Microsoft Visual Basic) desse tipo é seguro para operações multithread. Não há garantia de que quaisquer membros de instância sejam thread-safe.

Construtores

Nome Description
TransPublication()

Cria uma nova instância da classe TransPublication.

TransPublication(String, String, ServerConnection, Boolean)

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

TransPublication(String, String, ServerConnection)

Cria uma nova instância da TransPublication classe com as propriedades necessárias.

Propriedades

Nome Description
AltSnapshotFolder

Obtém ou define a localização alternativa do arquivo snapshot para uma publicação.

(Herdado de Publication)
Attributes

Recebe ou define os atributos de publicação.

(Herdado de Publication)
CachePropertyChanges

Obtém ou define se devem armazenar em cache as alterações feitas nas propriedades de replicação ou aplicá-las imediatamente.

(Herdado de ReplicationObject)
CompatibilityLevel

Recebe ou define a versão mais antiga do Microsoft SQL Server rodando nos Assinantes que a publicação referenciada pode suportar.

(Herdado de Publication)
ConflictPolicy

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

ConflictRetention

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

(Herdado de Publication)
ConnectionContext

Obtém ou configura a conexão para 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 Agente de Instantâneo for adicionado automaticamente quando a publicação é criada.

(Herdado de Publication)
DatabaseName

Obtém ou define o nome do banco de dados da 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 servidor do File Transfer Protocol (FTP) para publicações que permitem inicialização por assinatura via FTP.

(Herdado de Publication)
FtpLogin

Obtém ou configura o login que é usado para se conectar ao servidor do File Transfer Protocol (FTP) para publicações que permitem inicialização por assinatura via FTP.

(Herdado de Publication)
FtpPassword

Define a senha do login usado para se conectar ao servidor do File Transfer Protocol (FTP) para publicações que permitem a inicialização de assinatura via FTP.

(Herdado de Publication)
FtpPort

Obtém ou configura a porta do servidor do File Transfer Protocol (FTP) para publicações que permitem inicialização por assinatura via FTP.

(Herdado de Publication)
FtpSubdirectory

Obtém ou configura o subdiretório no servidor do File Transfer Protocol (FTP) para publicações que permitem inicialização por assinatura via FTP.

(Herdado de Publication)
HasSubscription

Determina se a publicação tem uma ou mais assinaturas.

(Herdado de Publication)
IsExistingObject

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

(Herdado de ReplicationObject)
Name

Recebe ou define o nome da publicação.

(Herdado de Publication)
PeerConflictDetectionEnabled

Obtém se a detecção de conflito peer-to-peer foi habilitada usando SetPeerConflictDetection(Boolean, Int32).

PeerOriginatorID

Obtém o ID de um nó em uma topologia peer-to-peer; esse ID é usado para detecção de conflitos se PeerConflictDetectionEnabled for definido como true.

PostSnapshotScript

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

(Herdado de Publication)
PreSnapshotScript

Recebe ou define o nome e o caminho completo de um arquivo de script Transact-SQL que é executado antes que o snapshot inicial seja aplicado ao Assinante.

(Herdado de Publication)
PubId

Obtém o valor que identifica de forma única a publicação.

(Herdado de Publication)
PublisherName

Recebe ou define o nome do não-SQL Server Publisher.

QueueType

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

ReplicateDdl

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

(Herdado de Publication)
RetentionPeriod

Obtém ou define o tempo antes do vencimento de uma assinatura quando a assinatura não está sincronizada com a publicação.

(Herdado de Publication)
SecureFtpPassword

Define a senha (como objeto SecureString ) para o login usado para conectar ao servidor do Protocolo de Transferência de Arquivos (FTP) para publicações que permitem inicialização de assinatura via FTP.

(Herdado de Publication)
SnapshotAgentExists

Obtém se o trabalho SQL Server Agent existir para gerar o snapshot inicial desta publicação.

(Herdado de Publication)
SnapshotAvailable

Obtém se os arquivos snapshot desta publicação estão disponíveis para uso.

SnapshotGenerationAgentProcessSecurity

Recebe um objeto que define a conta do Windows sob a qual o trabalho do Agente de Instantâneo roda.

(Herdado de Publication)
SnapshotGenerationAgentPublisherSecurity

Obtém o contexto de segurança usado pelo Agente de Instantâneo para se conectar ao Publisher.

(Herdado de Publication)
SnapshotJobId

Obtém o ID do trabalho do Agente de Instantâneo para a publicação atual.

(Herdado de Publication)
SnapshotMethod

Obtém ou define o formato do arquivo de dados do snapshot inicial.

(Herdado de Publication)
SnapshotSchedule

Recebe um objeto que define o cronograma para o Agente de Instantâneo 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 definem o status da publicação.

(Herdado de Publication)
TransArticles

Representa os artigos da publicação.

TransSubscriptions

Representa assinaturas da publicação.

Type

Recebe ou define o tipo de publicação.

(Herdado de Publication)
UserData

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

(Herdado de ReplicationObject)

Métodos

Nome Description
BrowseSnapshotFolder(String, String)

Retorna o caminho completo do local onde arquivos snapshot foram gerados para uma assinatura específica.

CheckValidCreation()

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

(Herdado de ReplicationObject)
CheckValidDefinition(Boolean)

Indica se deve verificar a definição válida.

(Herdado de Publication)
CommitPropertyChanges()

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

(Herdado de ReplicationObject)
CopySnapshot(String, String, String)

Copia os arquivos snapshot mais recentes de uma assinatura específica para uma pasta de destino.

Create()

Cria a publicação.

(Herdado de Publication)
CreateSnapshotAgent()

Cria o job SQL Server Agent que é usado para gerar o snapshot inicial da publicação, caso esse job ainda não exista.

(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 logins que têm acesso ao Publisher.

(Herdado de Publication)
EnumSubscriptions()

Devolve as assinaturas que assinam a publicação.

(Herdado de Publication)
GetChangeCommand(StringBuilder, String, String)

Retorna o comando de mudança 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 login especificado à lista de acesso à publicação (PAL).

(Herdado de Publication)
InternalRefresh(Boolean)

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

(Herdado de ReplicationObject)
Load()

Carrega as propriedades de um objeto existente a partir do servidor.

(Herdado de ReplicationObject)
LoadProperties()

Carrega as propriedades de um objeto existente a partir do servidor.

(Herdado de ReplicationObject)
MakePullSubscriptionWellKnown(String, String, SubscriptionSyncType, TransSubscriberType, Boolean)

Representa uma publicação transacional.

MakePullSubscriptionWellKnown(String, String, SubscriptionSyncType, TransSubscriberType)

Registra uma assinatura de pull no Publisher.

PostTracerToken()

Posta um token rastreador no log do Publisher para iniciar o processo de determinação da latência.

Refresh()

Recarrega as propriedades do objeto.

(Herdado de ReplicationObject)
RefreshSubscriptions()

Atualiza todas as assinaturas de uma publicação para incluir quaisquer artigos recém-adicionados.

ReinitializeAllSubscriptions()

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

ReinitializeAllSubscriptions(Boolean)

Marca todas as assinaturas da publicação para reinicialização, com a opção de invalidar um snapshot existente.

Remove()

Remove uma publicação existente.

(Herdado de Publication)
Remove(Boolean)

Remove uma publicação existente mesmo que o Distribuidor não possa ser acessado.

(Herdado de Publication)
RemovePullSubscription(String, String)

Remove o registro para uma assinatura pull no Publisher.

ReplicateUserDefinedScript(String)

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

(Herdado de Publication)
RevokePublicationAccess(String)

Remove o login especificado da lista de acesso à publicação (PAL).

(Herdado de Publication)
Script(ScriptOptions)

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

(Herdado de Publication)
SetPeerConflictDetection(Boolean, Int32)

Permite ou desativa a detecção de conflitos para um nó em uma topologia peer-to-peer.

StartSnapshotGenerationAgentJob()

Inicia o trabalho que gera o snapshot inicial para a publicação.

(Herdado de Publication)
StopSnapshotGenerationAgentJob()

Tenta impedir que um trabalho do Agente de Instantâneo esteja em execução.

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

Invoca validação de publicação inline para todas as assinaturas.

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

Invoca a validação de publicação inline para a assinatura especificada.

Aplica-se a

Confira também