Export (0) Print
Expand All

MergeSynchronizationAgent.HostName Property

 

Applies To: SQL Server 2016 Preview

Gets or sets the value used by the Merge Agent when it evaluates a parameterized filter that uses the HOST_NAME function.

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

public virtual string HostName { get; set; }

Property Value

Type: System.String

The value used by the Merge Agent.

Use the HostName property to have the Merge Agent override the value typically returned by the HOST_NAME function when this function is used to define a parameterized filter. For example, if you use the parameterized filter clause LoginID = HOST_NAME() to define horizontal filtering for an article, and if you set the HostName property to "adventure-works\david8" before calling the Synchronize method, the Merge Agent will synchronize data for the partition defined by "adventure-works\david8".

The case of the HostName property is ignored only when both the Publisher and the publication database are configured as case-insensitive.

Legacy Code Example

			// Define the server, publication, and database names.
			string subscriberName = subscriberInstance;
			string publisherName = publisherInstance;
            string distributorName = distributorInstance;
            string publicationName = "AdvWorksSalesOrdersMerge";
			string subscriptionDbName = "AdventureWorks2012Replica";
			string publicationDbName = "AdventureWorks2012";
			string hostname = @"adventure-works\garrett1";
			string webSyncUrl = "https://" + publisherInstance + "/SalesOrders/replisapi.dll";

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

			MergePullSubscription subscription;
			MergeSynchronizationAgent agent;

			try
			{
				// Connect to the Subscriber.
				conn.Connect();

				// Define the pull subscription.
				subscription = new MergePullSubscription();
				subscription.ConnectionContext = conn;
				subscription.DatabaseName = subscriptionDbName;
				subscription.PublisherName = publisherName;
				subscription.PublicationDBName = publicationDbName;
				subscription.PublicationName = publicationName;

				// If the pull subscription exists, then start the synchronization.
				if (subscription.LoadProperties())
				{
					// Get the agent for the subscription.
					agent = subscription.SynchronizationAgent;

					// Check that we have enough metadata to start the agent.
					if (agent.PublisherSecurityMode == null)
					{
						// Set the required properties that could not be returned
						// from the MSsubscription_properties table. 
						agent.PublisherSecurityMode = SecurityMode.Integrated;
						agent.DistributorSecurityMode = SecurityMode.Integrated;
                        agent.Distributor = publisherName;
                        agent.HostName = hostname;

						// Set optional Web synchronization properties.
						agent.UseWebSynchronization = true;
						agent.InternetUrl = webSyncUrl;
						agent.InternetSecurityMode = SecurityMode.Standard;
						agent.InternetLogin = winLogin;
						agent.InternetPassword = winPassword;
					}
					// Enable agent output to the console.
					agent.OutputVerboseLevel = 1;
					agent.Output = "";

					// Synchronously start the Merge Agent for the subscription.
					agent.Synchronize();
				}
				else
				{
					// Do something here if the pull subscription does not exist.
					throw new ApplicationException(String.Format(
						"A subscription to '{0}' does not exist on {1}",
						publicationName, subscriberName));
				}
			}
			catch (Exception ex)
			{
				// Implement appropriate error handling here.
				throw new ApplicationException("The subscription could not be " +
					"synchronized. Verify that the subscription has " +
					"been defined correctly.", ex);
			}
			finally
			{
				conn.Disconnect();
			}
Return to top
Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2015 Microsoft