MergeDynamicSnapshotJob Klasse

Definition

Enthält Informationen über den Momentaufnahmen-Agent-Job, der den Datensnapshot für ein Abonnement einer Merge-Publikation mit einem parametrisierten Zeilenfilter generiert.

public ref class MergeDynamicSnapshotJob sealed
public sealed class MergeDynamicSnapshotJob
type MergeDynamicSnapshotJob = class
Public NotInheritable Class MergeDynamicSnapshotJob
Vererbung
MergeDynamicSnapshotJob

Beispiele

// Define the server, database, and publication names
string publisherName = publisherInstance;
string publicationName = "AdvWorksSalesOrdersMerge";
string publicationDbName = "AdventureWorks2012";
string distributorName = publisherInstance;

MergePublication publication;
MergePartition partition;
MergeDynamicSnapshotJob snapshotAgentJob;
ReplicationAgentSchedule schedule;

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

// Create a connection to the Distributor to start the Snapshot Agent.
ServerConnection distributorConn = new ServerConnection(distributorName);

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

    // Set the required properties for the publication.
    publication = new MergePublication();
    publication.ConnectionContext = publisherConn;
    publication.Name = publicationName;
    publication.DatabaseName = publicationDbName;


    // If we can't get the properties for this merge publication, 
    // then throw an application exception.
    if (publication.LoadProperties() || publication.SnapshotAvailable)
    {
        // Set a weekly schedule for the filtered data snapshot.
        schedule = new ReplicationAgentSchedule();
        schedule.FrequencyType = ScheduleFrequencyType.Weekly;
        schedule.FrequencyRecurrenceFactor = 1;
        schedule.FrequencyInterval = Convert.ToInt32(0x001);

        // Set the value of Hostname that defines the data partition. 
        partition = new MergePartition();
        partition.DynamicFilterHostName = hostname;
        snapshotAgentJob = new MergeDynamicSnapshotJob();
        snapshotAgentJob.DynamicFilterHostName = hostname;

        // Create the partition for the publication with the defined schedule.
        publication.AddMergePartition(partition);
        publication.AddMergeDynamicSnapshotJob(snapshotAgentJob, schedule);
    }
    else
    {
        throw new ApplicationException(String.Format(
            "Settings could not be retrieved for the publication, " +
            " or the initial snapshot has not been generated. " +
            "Ensure that the publication {0} exists on {1} and " +
            "that the Snapshot Agent has run successfully.",
            publicationName, publisherName));
    }
}
catch (Exception ex)
{
    // Do error handling here.
    throw new ApplicationException(string.Format(
        "The partition for '{0}' in the {1} publication could not be created.",
        hostname, publicationName), ex);
}
finally
{
    publisherConn.Disconnect();
    if (distributorConn.IsOpen) distributorConn.Disconnect();
}
' Define the server, database, and publication names
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publicationDbName As String = "AdventureWorks2012"
Dim distributorName As String = publisherInstance

Dim publication As MergePublication
Dim partition As MergePartition
Dim snapshotAgentJob As MergeDynamicSnapshotJob
Dim schedule As ReplicationAgentSchedule

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

' Create a connection to the Distributor to start the Snapshot Agent.
Dim distributorConn As ServerConnection = New ServerConnection(distributorName)

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

    ' Set the required properties for the publication.
    publication = New MergePublication()
    publication.ConnectionContext = publisherConn
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName


    ' If we can't get the properties for this merge publication, 
    ' then throw an application exception.
    If (publication.LoadProperties() Or publication.SnapshotAvailable) Then
        ' Set a weekly schedule for the filtered data snapshot.
        schedule = New ReplicationAgentSchedule()
        schedule.FrequencyType = ScheduleFrequencyType.Weekly
        schedule.FrequencyRecurrenceFactor = 1
        schedule.FrequencyInterval = Convert.ToInt32("0x001", 16)

        ' Set the value of Hostname that defines the data partition. 
        partition = New MergePartition()
        partition.DynamicFilterHostName = hostname
        snapshotAgentJob = New MergeDynamicSnapshotJob()
        snapshotAgentJob.DynamicFilterHostName = hostname

        ' Create the partition for the publication with the defined schedule.
        publication.AddMergePartition(partition)
        publication.AddMergeDynamicSnapshotJob(snapshotAgentJob, schedule)
    Else
        Throw New ApplicationException(String.Format( _
         "Settings could not be retrieved for the publication, " + _
         " or the initial snapshot has not been generated. " + _
         "Ensure that the publication {0} exists on {1} and " + _
         "that the Snapshot Agent has run successfully.", _
         publicationName, publisherName))
    End If
Catch ex As Exception
    ' Do error handling here.
    Throw New ApplicationException(String.Format( _
     "The partition for '{0}' in the {1} publication could not be created.", _
     hostname, publicationName), ex)
Finally
    publisherConn.Disconnect()
    If distributorConn.IsOpen Then
        distributorConn.Disconnect()
    End If
End Try

Hinweise

Dieser Namensraum, diese Klasse oder dieses Mitglied wird nur in Version 2.0 des Microsoft .NET Frameworks unterstützt.

Threadsicherheit

Alle öffentlichen statischen (Shared in Microsoft Visual Basic) Mitglieder dieses Typs sind für Multithread-Operationen sicher. Instanzenmitglieder sind nicht garantiert threadsicher.

Konstruktoren

Name Beschreibung
MergeDynamicSnapshotJob()

Erstellt eine neue Instanz der MergeDynamicSnapshotJob Klasse.

Eigenschaften

Name Beschreibung
DynamicFilterHostName

Erhält oder setzt den Wert, der der Funktion HOST_NAME (Transact-SQL) gegeben wird, um den Datensnapshot zu erzeugen, wenn der parametrisierte Zeilenfilter mit dieser Funktion definiert wird.

DynamicFilterLogin

Erhält oder setzt den Wert, der der Funktion SUSER_SNAME (Transact-SQL) gegeben wird, um den Datensnapshot zu erzeugen, wenn der parametrisierte Zeilenfilter mit dieser Funktion definiert wird.

DynamicSnapshotLocation

Erhält oder setzt den Betriebssystemordner, der verwendet wird, um den von diesem Momentaufnahmen-Agent-Job erzeugten gefilterten Snapshot zu speichern.

JobId

Erhält oder setzt die Microsoft SQL Server-Agent-Job-ID im hexadezimalen Format, die den gefilterten Schnappschuss für den Abonnenten generiert.

Name

Erhält oder setzt den Namen des Momentaufnahmen-Agent-Jobs, der den gefilterten Snapshot für den Abonnenten generiert.

UserData

Erhält oder setzt ein Objekt, das es erlaubt, benutzerdefinierte Daten an diese Instanz von MergeDynamicSnapshotJobzu koppeln.

Gilt für:

Weitere Informationen