TransPublication Classe

Definizione

Rappresenta una pubblicazione transazionale.

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
Ereditarietà

Esempio

Questo esempio crea una pubblicazione transazionale.

// 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

Questo esempio elimina una pubblicazione transazionale.

// 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

Commenti

Sicurezza dei Thread

Qualsiasi membro pubblico statico (Sharedin Microsoft Visual Basic) di questo tipo è sicuro per operazioni multithread. Non è garantito che tutti i membri dell'istanza siano thread-safe.

Costruttori

Nome Descrizione
TransPublication()

Crea una nuova istanza della classe TransPublication.

TransPublication(String, String, ServerConnection, Boolean)

Crea una nuova istanza della TransPublication classe con le proprietà richieste e indica se il lavoro agente di snapshot per la pubblicazione è stato creato.

TransPublication(String, String, ServerConnection)

Crea una nuova istanza della TransPublication classe con le proprietà richieste.

Proprietà

Nome Descrizione
AltSnapshotFolder

Ottiene o imposta la posizione alternativa del file snapshot per una pubblicazione.

(Ereditato da Publication)
Attributes

Ottiene o imposta gli attributi di pubblicazione.

(Ereditato da Publication)
CachePropertyChanges

Ottiene o stabilisce se memorizzare le modifiche apportate alle proprietà di replicazione o applicarle immediatamente.

(Ereditato da ReplicationObject)
CompatibilityLevel

Riceve o imposta la versione più antica di Microsoft SQL Server in esecuzione sugli Abbonati che la pubblicazione citata può supportare.

(Ereditato da Publication)
ConflictPolicy

Ottiene o stabilisce la politica di conflitto per le pubblicazioni che supportano l'aggiornamento degli abbonamenti.

ConflictRetention

Ottiene o imposta il numero di giorni in cui le righe di dati di conflitto sono mantenute nelle tabelle di conflitto.

(Ereditato da Publication)
ConnectionContext

Ottiene o imposta la connessione a un'istanza di Microsoft SQL Server.

(Ereditato da ReplicationObject)
ContinueOnConflict

Determina se l'agente di distribuzione continua a elaborare le modifiche dopo che è stato rilevato un conflitto.

CreateSnapshotAgentByDefault

Ottiene o imposta se il job agente di snapshot viene aggiunto automaticamente quando la pubblicazione viene creata.

(Ereditato da Publication)
DatabaseName

Ottiene o imposta il nome del database della pubblicazione.

(Ereditato da Publication)
Description

Ottiene o imposta una descrizione testuale della pubblicazione.

(Ereditato da Publication)
FtpAddress

Ottiene o imposta l'indirizzo del computer server File Transfer Protocol (FTP) per le pubblicazioni che consentono l'inizializzazione in abbonamento tramite FTP.

(Ereditato da Publication)
FtpLogin

Ottiene o imposta il login che viene utilizzato per connettersi al server File Transfer Protocol (FTP) per pubblicazioni che permettono l'inizializzazione dell'abbonamento tramite FTP.

(Ereditato da Publication)
FtpPassword

Imposta la password per l'accesso utilizzato per connettersi al server File Transfer Protocol (FTP) per le pubblicazioni che consentono l'inizializzazione dell'abbonamento tramite FTP.

(Ereditato da Publication)
FtpPort

Ottiene o imposta la porta del computer server File Transfer Protocol (FTP) per pubblicazioni che permettono l'inizializzazione in abbonamento tramite FTP.

(Ereditato da Publication)
FtpSubdirectory

Ottiene o imposta la sottodirectory sul server File Transfer Protocol (FTP) per le pubblicazioni che permettono l'inizializzazione in abbonamento tramite FTP.

(Ereditato da Publication)
HasSubscription

Capisce se la pubblicazione ha uno o più abbonamenti.

(Ereditato da Publication)
IsExistingObject

Ottiene se l'oggetto esiste o meno sul server.

(Ereditato da ReplicationObject)
Name

Ottiene o imposta il nome della pubblicazione.

(Ereditato da Publication)
PeerConflictDetectionEnabled

Ottiene se il rilevamento del conflitto peer-to-peer è stato abilitato usando SetPeerConflictDetection(Boolean, Int32).

PeerOriginatorID

Ottiene l'ID per un nodo in una topologia peer-to-peer; questo ID viene usato per il rilevamento del conflitto se PeerConflictDetectionEnabled è impostato su true.

PostSnapshotScript

Ottiene o imposta il nome e il percorso completo di un file script Transact-SQL che viene eseguito dopo che l'istantaneo iniziale è stato applicato all'Abbonato.

(Ereditato da Publication)
PreSnapshotScript

Ottiene o imposta il nome e il percorso completo di un file script Transact-SQL che viene eseguito prima che lo snapshot iniziale venga applicato all'abbonato.

(Ereditato da Publication)
PubId

Ottiene il valore che identifica unicamente la pubblicazione.

(Ereditato da Publication)
PublisherName

Ottiene o imposta il nome del non-SQL Server Publisher.

QueueType

Ottiene o imposta il tipo di coda da utilizzare per le pubblicazioni che permettono abbonamenti aggiornati in coda.

ReplicateDdl

Ottiene o imposta le opzioni di replicazione del linguaggio di definizione dei dati (DDL) che determinano se le modifiche DDL vengono replicate.

(Ereditato da Publication)
RetentionPeriod

Ottiene o imposta il tempo prima che un abbonamento scada quando l'abbonamento non è sincronizzato con la pubblicazione.

(Ereditato da Publication)
SecureFtpPassword

Imposta la password (come SecureString oggetto) per l'accesso utilizzato per connettersi al server File Transfer Protocol (FTP) per le pubblicazioni che consentono l'inizializzazione dell'abbonamento tramite FTP.

(Ereditato da Publication)
SnapshotAgentExists

Ottiene se il lavoro SQL Server Agent esiste per generare lo snapshot iniziale di questa pubblicazione.

(Ereditato da Publication)
SnapshotAvailable

Verifica se i file snapshot di questa pubblicazione sono disponibili per l'uso.

SnapshotGenerationAgentProcessSecurity

Ottiene un oggetto che imposta l'account Windows sotto cui viene eseguito il lavoro agente di snapshot.

(Ereditato da Publication)
SnapshotGenerationAgentPublisherSecurity

Ottiene il contesto di sicurezza usato dallo agente di snapshot per connettersi al Publisher.

(Ereditato da Publication)
SnapshotJobId

Ottiene l'ID del lavoro agente di snapshot per la pubblicazione corrente.

(Ereditato da Publication)
SnapshotMethod

Ottiene o imposta il formato del file dati dello snapshot iniziale.

(Ereditato da Publication)
SnapshotSchedule

Ottiene un oggetto che imposta il calendario per l'agente di snapshot della pubblicazione corrente.

(Ereditato da Publication)
SqlServerName

Ottiene il nome dell'istanza di Microsoft SQL Server a cui è collegato questo oggetto.

(Ereditato da ReplicationObject)
Status

Ottiene o stabilisce lo stato della pubblicazione.

(Ereditato da Publication)
TransArticles

Rappresenta gli articoli della pubblicazione.

TransSubscriptions

Rappresenta gli abbonamenti alla pubblicazione.

Type

Ottiene o fissa il tipo di pubblicazione.

(Ereditato da Publication)
UserData

Ottiene o imposta una proprietà oggetto che permette agli utenti di allegare i propri dati all'oggetto.

(Ereditato da ReplicationObject)

Metodi

Nome Descrizione
BrowseSnapshotFolder(String, String)

Restituisce il percorso completo della posizione in cui sono stati generati i file snapshot per un abbonamento specifico.

CheckValidCreation()

Controlla la valida creazione della replica.

(Ereditato da ReplicationObject)
CheckValidDefinition(Boolean)

Indica se verificare la definizione valida.

(Ereditato da Publication)
CommitPropertyChanges()

Invia tutte le istruzioni di modifica delle proprietà nella cache all'istanza di Microsoft SQL Server.

(Ereditato da ReplicationObject)
CopySnapshot(String, String, String)

Copia gli ultimi file snapshot per un abbonamento specifico in una cartella di destinazione.

Create()

Crea la pubblicazione.

(Ereditato da Publication)
CreateSnapshotAgent()

Crea il job SQL Server Agent che viene utilizzato per generare lo snapshot iniziale della pubblicazione, se questo job non esiste già.

(Ereditato da Publication)
Decouple()

Disaccoppia l'oggetto di replica di riferimento dal server.

(Ereditato da ReplicationObject)
EnumArticles()

Restituisce gli articoli nella pubblicazione.

(Ereditato da Publication)
EnumPublicationAccesses(Boolean)

Restituisce gli accessi che hanno accesso all'Publisher.

(Ereditato da Publication)
EnumSubscriptions()

Restituisce gli abbonamenti che sono abbonati alla pubblicazione.

(Ereditato da Publication)
GetChangeCommand(StringBuilder, String, String)

Restituisce il comando change dalla replicazione.

(Ereditato da ReplicationObject)
GetCreateCommand(StringBuilder, Boolean, ScriptOptions)

Restituisce il comando create dalla replicazione.

(Ereditato da ReplicationObject)
GetDropCommand(StringBuilder, Boolean)

Restituisce il comando drop dalla replicazione.

(Ereditato da ReplicationObject)
GrantPublicationAccess(String)

Aggiunge l'accesso specificato alla lista di accesso alla pubblicazione (PAL).

(Ereditato da Publication)
InternalRefresh(Boolean)

Avvia un aggiornamento interno dalla replicazione.

(Ereditato da ReplicationObject)
Load()

Carica le proprietà di un oggetto esistente dal server.

(Ereditato da ReplicationObject)
LoadProperties()

Carica le proprietà di un oggetto esistente dal server.

(Ereditato da ReplicationObject)
MakePullSubscriptionWellKnown(String, String, SubscriptionSyncType, TransSubscriberType, Boolean)

Rappresenta una pubblicazione transazionale.

MakePullSubscriptionWellKnown(String, String, SubscriptionSyncType, TransSubscriberType)

Registra un abbonamento pull presso l'Publisher.

PostTracerToken()

Pubblica un token tracciante nel registro Publisher per iniziare il processo di determinazione della latenza.

Refresh()

Ricarica le proprietà dell'oggetto.

(Ereditato da ReplicationObject)
RefreshSubscriptions()

Aggiorna tutti gli abbonamenti a una pubblicazione includendo eventuali nuovi articoli aggiunti.

ReinitializeAllSubscriptions()

Segna tutte le iscrizioni alla pubblicazione per la riinizializzazione.

ReinitializeAllSubscriptions(Boolean)

Segna tutte le iscrizioni alla pubblicazione per la riinizializzazione, con l'opzione di invalidare uno snapshot esistente.

Remove()

Rimuove una pubblicazione esistente.

(Ereditato da Publication)
Remove(Boolean)

Rimuove una pubblicazione esistente anche se il Distributore non può essere accessibile.

(Ereditato da Publication)
RemovePullSubscription(String, String)

Rimuove la registrazione per un abbonamento pull presso l'Publisher.

ReplicateUserDefinedScript(String)

Replica l'esecuzione di uno script definito dall'utente agli Abbonati di una pubblicazione specificata.

(Ereditato da Publication)
RevokePublicationAccess(String)

Rimuove l'accesso specificato dalla lista di accesso alla pubblicazione (PAL).

(Ereditato da Publication)
Script(ScriptOptions)

Genera uno script Transact-SQL che può essere utilizzato per ricreare la pubblicazione come specificato dalle opzioni di script.

(Ereditato da Publication)
SetPeerConflictDetection(Boolean, Int32)

Abilita o disabilita il rilevamento di conflitti per un nodo in una topologia peer-to-peer.

StartSnapshotGenerationAgentJob()

Inizia il lavoro che genera lo snapshot iniziale per la pubblicazione.

(Ereditato da Publication)
StopSnapshotGenerationAgentJob()

Tenta di fermare un lavoro agente di snapshot in corso.

(Ereditato da Publication)
ValidatePublication(ValidationOption, ValidationMethod, Boolean)

Invoca la validazione della pubblicazione in linea per tutti gli abbonamenti.

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

Invoca la validazione della pubblicazione in linea per l'abbonamento specificato.

Si applica a

Vedi anche