ReplicationAgentSchedule Class
SQL Server 2012
Represents the schedule for a replication agent job.
Namespace: Microsoft.SqlServer.Replication
Assembly: Microsoft.SqlServer.Rmo (in Microsoft.SqlServer.Rmo.dll)
The ReplicationAgentSchedule type exposes the following members.
| Name | Description | |
|---|---|---|
![]() | ReplicationAgentSchedule | Creates a new instance of the ReplicationAgentSchedule class. |
| Name | Description | |
|---|---|---|
![]() | ActiveEndDate | Gets or sets the date the scheduled activity is to stop running. |
![]() | ActiveEndTime | Gets or sets the time the scheduled activity is to stop running. |
![]() | ActiveStartDate | Gets or sets the date of the first occurrence of the scheduled activity. |
![]() | ActiveStartTime | Gets or sets the time of the first occurrence of the scheduled activity. |
![]() | FrequencyInterval | Gets or sets the interval between occurrences of a scheduled activity. |
![]() | FrequencyRecurrenceFactor | Gets or sets the frequency recurrence factor. |
![]() | FrequencyRelativeInterval | Gets or sets a time of occurrence that is relative to the first day of the month. |
![]() | FrequencySubDay | Gets or sets the frequency in minutes for scheduled activities that occur several times a day. |
![]() | FrequencySubDayInterval | Gets or sets the interval between scheduled activities that occur several times in one day. |
![]() | FrequencyType | Gets or sets the frequency for a scheduled activity. |
// 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
