ScheduleFrequencyType Enumeration


Enumerates the types of frequencies used when scheduling a replication agent job.

Namespace:   Microsoft.SqlServer.Replication
Assembly:  Microsoft.SqlServer.Rmo (in Microsoft.SqlServer.Rmo.dll)

public enum ScheduleFrequencyType

Member nameDescription

The replication agent job is started when the Microsoft SQL Server Agent Service starts.


The replication agent job is run daily.


The replication agent job is run monthly.


The replication agent job is run relative to a part of a month, such as the second week.


The Microsoft SQL Server Agent Service schedules the replication agent job when it is specifically requested.



The Microsoft SQL Server Agent Service runs the replication agent job any time when the processor is idle.


No schedule frequency, or frequency not applicable.


The replication agent job is run weekly.

This namespace, class, or member is supported only in version 2.0 of the .NET Framework.

// Define the Publisher, publication, and databases.
string publicationName = "AdvWorksSalesOrdersMerge";
string publisherName = publisherInstance;
string subscriberName = subscriberInstance;
string subscriptionDbName = "AdventureWorks2012Replica";
string publicationDbName = "AdventureWorks2012";
string hostname = @"adventure-works\garrett1";

//Create a connection to the Publisher.
ServerConnection conn = new ServerConnection(subscriberName);

// Create the objects that we need.
MergePublication publication;
MergeSubscription subscription;

	// Connect to the Publisher.

	// Ensure that the publication exists and that 
	// it supports push subscriptions.
	publication = new MergePublication();
	publication.Name = publicationName;
	publication.DatabaseName = publicationDbName;
	publication.ConnectionContext = conn;

	if (publication.IsExistingObject)
		if ((publication.Attributes & PublicationAttributes.AllowPush) == 0)
			publication.Attributes |= PublicationAttributes.AllowPush;

		// Define the push subscription.
		subscription = new MergeSubscription();
		subscription.ConnectionContext = conn;
		subscription.SubscriberName = subscriberName;
		subscription.PublicationName = publicationName;
		subscription.DatabaseName = publicationDbName;
		subscription.SubscriptionDBName = subscriptionDbName;
		subscription.HostName = hostname;

		// Set a schedule to synchronize the subscription every 2 hours
		// during weekdays from 6am to 10pm.
		subscription.AgentSchedule.FrequencyType = ScheduleFrequencyType.Weekly;
		subscription.AgentSchedule.FrequencyInterval = Convert.ToInt32(0x003E);
		subscription.AgentSchedule.FrequencyRecurrenceFactor = 1;
		subscription.AgentSchedule.FrequencySubDay = ScheduleFrequencySubDay.Hour;
		subscription.AgentSchedule.FrequencySubDayInterval = 2;
		subscription.AgentSchedule.ActiveStartDate = 20051108;
		subscription.AgentSchedule.ActiveEndDate = 20071231;
		subscription.AgentSchedule.ActiveStartTime = 060000;
		subscription.AgentSchedule.ActiveEndTime = 100000;

		// Specify the Windows login credentials for the Merge Agent job.
		subscription.SynchronizationAgentProcessSecurity.Login = winLogin;
		subscription.SynchronizationAgentProcessSecurity.Password = winPassword;

		// Create the push subscription.
		// 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);
Return to top