TransPullSubscription Constructor ()


Creates a new instance of the TransPullSubscription class.

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

public TransPullSubscription()

The default constructor initializes any fields to their default values.

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