Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

RegisteredSubscriberCollection Class

 

Applies To: SQL Server 2016 Preview

Represents a collection of RegisteredSubscriber objects.

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

System.Object
  Microsoft.SqlServer.Replication.ReplicationBaseCollection
    Microsoft.SqlServer.Replication.RegisteredSubscriberCollection

public sealed class RegisteredSubscriberCollection : ReplicationBaseCollection

NameDescription
System_CAPS_pubpropertyCount

Gets the number of objects in the referenced collection.(Inherited from ReplicationBaseCollection.)

System_CAPS_pubpropertyIsSynchronized

Gets whether or not access to the collection is synchronized and is therefore thread-safe.(Inherited from ReplicationBaseCollection.)

System_CAPS_pubpropertyItem[Int32]

Gets a RegisteredSubscriber object in the collection by index number.

System_CAPS_pubpropertyItem[String]

Gets a RegisteredSubscriber object in the collection by name.

System_CAPS_pubpropertySyncRoot

Gets an object that can be used to synchronize access to the collection.(Inherited from ReplicationBaseCollection.)

NameDescription
System_CAPS_pubmethodCopyTo(Array, Int32)

Copies the collection to an array.(Inherited from ReplicationBaseCollection.)

System_CAPS_pubmethodCopyTo(RegisteredSubscriberCollection, Int32)

Makes a copy of the collection.

System_CAPS_pubmethodEquals(Object)

(Inherited from Object.)

System_CAPS_pubmethodGetEnumerator()

Gets an enumerator that is used to iterate through the objects in a collection.(Inherited from ReplicationBaseCollection.)

System_CAPS_pubmethodGetHashCode()

(Inherited from Object.)

System_CAPS_pubmethodGetType()

(Inherited from Object.)

System_CAPS_pubmethodRefresh()

Refreshes the collection.(Inherited from ReplicationBaseCollection.)

System_CAPS_pubmethodToString()

(Inherited from Object.)

A RegisteredSubscriber object in the collection can be accessed from the P:Microsoft.SqlServer.Replication.RegisteredSubscriberCollection.Item property using an [Int32] index value or using a [String] index value that is the Subscriber name.

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

Any public static (Shared in Microsoft Visual Basic) members of this type are safe for multithreaded operations. Any instance members are not guaranteed to be thread safe.

Legacy Code Example

This example shows how to check the number of RegisteredSubscriber objects in the RegisteredSubscriberCollection accessed from the RegisteredSubscribers property.

			// Set the Distributor and publication database names.
			// Publisher and Distributor are on the same server instance.
			string publisherName = publisherInstance;
			string distributorName = publisherInstance;
			string distributionDbName = "distribution";
			string publicationDbName = "AdventureWorks2012";

			// Create connections to the Publisher and Distributor
			// using Windows Authentication.
			ServerConnection publisherConn = new ServerConnection(publisherName);
			ServerConnection distributorConn = new ServerConnection(distributorName);

			// Create the objects we need.
			ReplicationServer distributor =
				new ReplicationServer(distributorConn);
			DistributionPublisher publisher;
			DistributionDatabase distributionDb =
				new DistributionDatabase(distributionDbName, distributorConn);
			ReplicationDatabase publicationDb;
			publicationDb = new ReplicationDatabase(publicationDbName, publisherConn);

			try
			{
				// Connect to the Publisher and Distributor.
				publisherConn.Connect();
				distributorConn.Connect();

				// Disable all publishing on the AdventureWorks2012 database.
				if (publicationDb.LoadProperties())
				{
					if (publicationDb.EnabledMergePublishing)
					{
						publicationDb.EnabledMergePublishing = false;
					}
					else if (publicationDb.EnabledTransPublishing)
					{
						publicationDb.EnabledTransPublishing = false;
					}
				}
				else
				{
					throw new ApplicationException(
						String.Format("The {0} database does not exist.", publicationDbName));
				}

				// We cannot uninstall the Publisher if there are still Subscribers.
				if (distributor.RegisteredSubscribers.Count == 0)
				{
					// Uninstall the Publisher, if it exists.
					publisher = new DistributionPublisher(publisherName, distributorConn);
					if (publisher.LoadProperties())
					{
						publisher.Remove(false);
					}
					else
					{
						// Do something here if the Publisher does not exist.
						throw new ApplicationException(String.Format(
							"{0} is not a Publisher for {1}.", publisherName, distributorName));
					}

					// Drop the distribution database.
					if (distributionDb.LoadProperties())
					{
						distributionDb.Remove();
					}
					else
					{
						// Do something here if the distribition DB does not exist.
						throw new ApplicationException(String.Format(
							"The distribution database '{0}' does not exist on {1}.",
							distributionDbName, distributorName));
					}

					// Uninstall the Distributor, if it exists.
					if (distributor.LoadProperties())
					{
						// Passing a value of false means that the Publisher 
						// and distribution databases must already be uninstalled,
						// and that no local databases be enabled for publishing.
						distributor.UninstallDistributor(false);
					}
					else
					{
						//Do something here if the distributor does not exist.
						throw new ApplicationException(String.Format(
							"The Distributor '{0}' does not exist.", distributorName));
					}
				}
				else
				{
					throw new ApplicationException("You must first delete all subscriptions.");
				}
			}
			catch (Exception ex)
			{
				// Implement appropriate error handling here.
				throw new ApplicationException("The Publisher and Distributor could not be uninstalled", ex);
			}
			finally
			{
				publisherConn.Disconnect();
				distributorConn.Disconnect();
			}

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top

Community Additions

Show:
© 2015 Microsoft