Freigeben über


MergePartition Klasse

Definition

Stellt Informationen zur Partition eines Abonnenten für eine Mergeveröffentlichung mit einem parametrisierten Zeilenfilter dar.

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

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 Namespace bzw. diese Klasse oder dieses Member wird nur von Microsoft .NET Framework Version 2.0 unterstützt.

Threadsicherheit

Alle öffentlichen statischen (Shared in Microsoft Visual Basic) Member dieses Typs sind für Multithreadvorgänge sicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Konstruktoren

MergePartition()

Erstellt eine neue Instanz der MergePartition-Klasse.

Eigenschaften

CurrentSnapshotDateTime

Ruft den Zeitpunkt (Datum und Uhrzeit) ab, zu dem die Datenmomentaufnahme der Partition generiert wurde, oder legt ihn fest.

DynamicFilterHostName

Ruft den Wert ab, der der HOST_NAME -Funktion (Transact-SQL) bereitgestellt wird, um die Datenmomentaufnahme zu generieren, wenn der parametrisierte Zeilenfilter mithilfe dieser Funktion definiert wird, oder legt diesen fest.

DynamicFilterLogin

Ruft den Wert ab, der der SUSER_SNAME -Funktion (Transact-SQL) bereitgestellt wird, um die Datenmomentaufnahme zu generieren, wenn der parametrisierte Zeilenfilter mithilfe dieser Funktion definiert wird, oder legt diesen fest.

DynamicSnapshotJobId

Ruft die Microsoft SQL Server-Agent-Auftrags-ID im Hexadezimalformat ab, die die gefilterte Momentaufnahme für den Abonnenten generiert, oder legt diese fest.

DynamicSnapshotLocation

Ruft den Betriebssystemordner ab, der verwendet wird, um die gefilterte für die Partition generierte Momentaufnahme zu speichern, oder legt ihn fest.

PartitionId

Ruft den ID-Wert ab, durch den die Partition eindeutig identifiziert wird, oder legt ihn fest.

UserData

Ruft ein Objekt ab, das Ihnen ermöglicht, benutzerdefinierte Daten an diese Instanz von MergePartition anzufügen, oder legt es fest.

Gilt für:

Weitere Informationen