TransPullSubscription Classe

Definizione

Rappresenta un abbonamento pull a una pubblicazione transazionale.

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

Esempio

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

Commenti

Per un abbonamento pull, l'agente di distribuzione viene eseguito presso l'Abbonato.

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
TransPullSubscription()

Crea una nuova istanza della classe TransPullSubscription.

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

Crea una nuova istanza della TransPullSubscription classe con le proprietà che definiscono un pull subscription, e se creare o meno il job agente per l'abbonamento.

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

Crea una nuova istanza della TransPullSubscription classe con le proprietà che definiscono una sottoscrizione pull.

Proprietà

Nome Descrizione
AgentJobId

Ottiene l'ID del job agente usato per sincronizzare l'abbonamento.

(Ereditato da PullSubscription)
AgentOffload

Ottiene o imposta se l'Agente di Sincronizzazione gira su un computer diverso da quello in cui è stato creato il lavoro dell'agente. Questa proprietà non è più supportata per i distributori che eseguono Microsoft SQL Server 2005 e versioni successive.

(Ereditato da PullSubscription)
AgentOffloadServer

Ottiene o imposta il nome del computer remoto dove l'agente viene eseguito quando si utilizza l'attivazione remota dell'agente.

(Ereditato da PullSubscription)
AgentSchedule

Ottiene l'orario per il lavoro dell'agente utilizzato per sincronizzare l'abbonamento.

(Ereditato da PullSubscription)
AltSnapshotFolder

Ottiene o imposta la posizione in cui vengono ottenuti i file snapshot di pubblicazione quando la posizione snapshot predefinita presso il Distributore non viene utilizzata.

(Ereditato da PullSubscription)
Attributes

Ottiene o imposta gli attributi di una pubblicazione transazionale supportati dall'abbonamento.

CachePropertyChanges

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

(Ereditato da ReplicationObject)
ConnectionContext

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

(Ereditato da ReplicationObject)
CreateSyncAgentByDefault

Ottiene o imposta se il job dell'agente usato per avviare l'Agente di Replica per sincronizzare l'abbonamento viene creato quando l'abbonamento viene creato.

(Ereditato da PullSubscription)
DatabaseName

Ottiene o imposta il nome del database in abbonamento.

(Ereditato da PullSubscription)
Description

Ottiene o imposta una descrizione testuale dell'abbonamento pull.

(Ereditato da PullSubscription)
DistributorName

Ottiene o imposta l'istanza di Microsoft SQL Server che è il Distributore e distribuisce la pubblicazione a cui l'abbonamento è abbonato.

(Ereditato da PullSubscription)
DistributorSecurity

Ottiene il contesto di sicurezza usato per connettersi al Distributore.

(Ereditato da PullSubscription)
DtsPackageLocation

Ottiene o imposta la posizione del pacchetto Data Transformation Services (DTS) utilizzato con un abbonamento trasformabile.

DtsPackageName

Ottiene o imposta il nome del pacchetto Data Transformation Services (DTS) utilizzato in un abbonamento trasformabile.

DtsPackagePassword

Ottiene o imposta la password usata con un abbonamento trasformabile.

EnabledForSynchronizationManager

Specifica se l'abbonamento può essere sincronizzato utilizzando Windows Synchronization Manager.

(Ereditato da PullSubscription)
FtpAddress

Ottiene o imposta l'indirizzo IP del server FTP.

(Ereditato da PullSubscription)
FtpLogin

Ottiene o imposta l'accesso FTP.

(Ereditato da PullSubscription)
FtpPassword

Ottiene o imposta la password FTP.

(Ereditato da PullSubscription)
FtpPort

Ottiene o imposta il numero di porta per il server FTP.

(Ereditato da PullSubscription)
IsExistingObject

Ottiene se l'oggetto esiste o meno sul server.

(Ereditato da ReplicationObject)
IsMemoryOptimized

Rappresenta un abbonamento pull a una pubblicazione transazionale.

(Ereditato da PullSubscription)
LastAgentDateTime

Riceve la data e l'ora in cui l'abbonamento è stato sincronizzato l'ultima volta.

(Ereditato da PullSubscription)
LastAgentStatus

Ottiene lo stato della sincronizzazione più recente dell'abbonamento.

(Ereditato da PullSubscription)
LastAgentSummary

Riceve un riepilogo del risultato della sincronizzazione più recente dell'abbonamento.

(Ereditato da PullSubscription)
LastSummaryDateTime

Ottiene la data e l'ora in cui è stata completata l'ultima sincronizzazione.

MemoryOptimized

Rappresenta un abbonamento pull a una pubblicazione transazionale.

Name

Ottiene il nome generato per l'abbonamento pull.

(Ereditato da PullSubscription)
PublicationDBName

Ottiene o imposta il nome del database della pubblicazione.

(Ereditato da PullSubscription)
PublicationName

Ottiene o imposta il nome della pubblicazione a cui l'abbonamento è abbonato.

(Ereditato da PullSubscription)
PublisherName

Ottiene o imposta il nome dell'Publisher.

(Ereditato da PullSubscription)
PublisherSecurity

Ottiene o imposta il contesto di sicurezza utilizzato dall'Agente di Sincronizzazione quando si connette al Publisher.

(Ereditato da PullSubscription)
SecureFtpPassword

Ottiene o imposta la password sicura per l'accesso utilizzato per connettersi al server FTP.

(Ereditato da PullSubscription)
SqlServerName

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

(Ereditato da ReplicationObject)
SubscriberSecurity

Ottiene il contesto di sicurezza utilizzato dall'Agente di Sincronizzazione quando si connette all'abbonato.

(Ereditato da PullSubscription)
SubscriberType

Ottiene o imposta il comportamento di aggiornamento dell'abbonamento.

SubscriptionId

Ottiene il valore dell'ID abbonamento.

(Ereditato da PullSubscription)
SubscriptionType

Capisce se la registrazione dell'abbonamento è per un push, pull o anonimo.

(Ereditato da PullSubscription)
SynchronizationAgent

Ottiene un oggetto che rappresenta un'istanza del agente di distribuzione che può essere utilizzata per sincronizzare l'abbonamento.

SynchronizationAgentProcessSecurity

Ottiene il contesto di sicurezza utilizzato per specificare l'account Microsoft Windows sotto cui il lavoro dell'Agente di Sincronizzazione viene eseguito per sincronizzare l'abbonamento.

(Ereditato da PullSubscription)
Type

Prende o imposta il tipo di pubblicazione.

(Ereditato da PullSubscription)
UseFtp

Ottiene o stabilisce se i file snapshot necessari per inizializzare la sottoscrizione pull sono accessibili dall'Agente di Sincronizzazione tramite File Transfer Protocol (FTP).

(Ereditato da PullSubscription)
UserData

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

(Ereditato da ReplicationObject)
WorkingDirectory

Ottiene o imposta il percorso della directory presso l'Abbonato che viene utilizzato per memorizzare e decomprimere temporaneamente i file snapshot scaricati.

(Ereditato da PullSubscription)

Metodi

Nome Descrizione
CheckValidCreation()

Controlla la valida creazione della replica.

(Ereditato da ReplicationObject)
CheckValidDefinition(Boolean)

Indica se la definizione è valida.

(Ereditato da PullSubscription)
CommitPropertyChanges()

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

(Ereditato da ReplicationObject)
Create()

Crea l'abbonamento pull sull'abbonato.

(Ereditato da PullSubscription)
CustomEnabledForSyncMgr(StringBuilder)

Abilita la pubblicazione personalizzata per synchronous manager.

(Ereditato da PullSubscription)
Decouple()

Disaccoppia l'oggetto di replica di riferimento dal server.

(Ereditato da ReplicationObject)
DoUpdateMemoryOptimizedProperty(String)

Rappresenta un abbonamento pull a una pubblicazione transazionale.

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)
InitMemberVariables(String, String, String, String, Boolean)

Inizializza le variabili membri.

(Ereditato da PullSubscription)
InternalRefresh(Boolean)

Avvia un aggiornamento interno dalla replicazione.

(Ereditato da ReplicationObject)
LastAgentJobHistoryInfo()

Restituisce le informazioni sull'ultimo lavoro dell'Agente di Sincronizzazione che è stato eseguito.

(Ereditato da PullSubscription)
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)
Refresh()

Ricarica le proprietà dell'oggetto.

(Ereditato da ReplicationObject)
Reinitialize()

Segna l'abbonamento pull per la riinizializzazione.

Remove()

Rimuove l'abbonamento pull.

(Ereditato da PullSubscription)
Script(ScriptOptions)

Restituisce uno script Transact-SQL per creare o eliminare l'abbonamento pull in base all'impostazione attuale delle proprietà dell'oggetto PullSubscription .

(Ereditato da PullSubscription)
StopSynchronizationJob()

Tenta di fermare un lavoro agente di distribuzione in esecuzione che sta sincronizzando l'abbonamento.

SynchronizeWithJob()

Avvia il lavoro dell'agente per sincronizzare l'abbonamento.

Si applica a

Vedi anche