TransSubscriberType Enumeration


Enumerates the updating behaviors for subscriptions to transactional publications.

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

public enum TransSubscriberType

Member nameDescription

Enables the subscription for immediate updating, with queued updating as a failover. Data modifications can be made at the Subscriber and propagated to the Publisher immediately. If the Publisher and Subscriber are not connected, the updating mode can be changed so that data modifications made at the Subscriber are stored in a queue until the Subscriber and Publisher are reconnected. Not supported for Oracle Publishers.


Enables support for immediate updating subscriptions. Not supported for Oracle Publishers.


Enables the subscription as a queued updating subscription with the ability to change to immediate updating mode. Data modifications can be made at the Subscriber and stored in a queue until a connection is established between the Subscriber and Publisher. When a continuous connection is established the updating mode can be changed to immediate updating. Not supported for Oracle Publishers.


Enables the subscription for queued updating. Data modifications can be made at the Subscriber, stored in a queue, and then propagated to the Publisher. Not supported for Oracle Publishers.


The subscription is read-only. The changes at the Subscriber are not sent to the Publisher.

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

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

	// Connect to the Publisher and Subscriber.

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

		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.
				subscriberName, subscriptionDbName,
		// 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