TransSynchronizationAgent.Synchronize Method
Starts the Distribution Agent to synchronize the subscription.
Namespace: Microsoft.SqlServer.Replication
Assembly: Microsoft.SqlServer.Replication (in Microsoft.SqlServer.Replication.dll)
This method synchronously starts the Distribution Agent. To start the Distribution Agent asynchronously, call SynchronizeWithJob for a pull subscription or SynchronizeWithJob for a push subscription.
In the following example, the Synchronize method is called on the instance of the TransSynchronizationAgent class that is accessed from the SynchronizationAgent property to synchronize the push subscription.
// Define the server, publication, and database names. string subscriberName = subscriberInstance; string publisherName = publisherInstance; string publicationName = "AdvWorksProductTran"; string subscriptionDbName = "AdventureWorks2012Replica"; string publicationDbName = "AdventureWorks2012"; // Create a connection to the Publisher. ServerConnection conn = new ServerConnection(publisherName); TransSubscription subscription; try { // Connect to the Publisher. conn.Connect(); // Define the push subscription. subscription = new TransSubscription(); subscription.ConnectionContext = conn; subscription.DatabaseName = publicationDbName; subscription.PublicationName = publicationName; subscription.SubscriptionDBName = subscriptionDbName; subscription.SubscriberName = subscriberName; // If the push subscription exists, start the synchronization. if (subscription.LoadProperties()) { // Check that we have enough metadata to start the agent. if (subscription.SubscriberSecurity != null) { // Synchronously start the Distribution Agent for the subscription. subscription.SynchronizationAgent.Synchronize(); } else { throw new ApplicationException("There is insufficent metadata to " + "synchronize the subscription. Recreate the subscription with " + "the agent job or supply the required agent properties at run time."); } } else { // Do something here if the push subscription does not exist. throw new ApplicationException(String.Format( "The 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.", ex); } finally { conn.Disconnect(); }
' Define the server, publication, and database names. Dim subscriberName As String = subscriberInstance Dim publisherName As String = publisherInstance Dim publicationName As String = "AdvWorksProductTran" Dim subscriptionDbName As String = "AdventureWorks2012Replica" Dim publicationDbName As String = "AdventureWorks2012" ' Create a connection to the Publisher. Dim conn As ServerConnection = New ServerConnection(publisherName) Dim subscription As TransSubscription Try ' Connect to the Publisher. conn.Connect() ' Define the push subscription. subscription = New TransSubscription() subscription.ConnectionContext = conn subscription.DatabaseName = publicationDbName subscription.PublicationName = publicationName subscription.SubscriptionDBName = subscriptionDbName subscription.SubscriberName = subscriberName ' If the push subscription exists, start the synchronization. If subscription.LoadProperties() Then ' Check that we have enough metadata to start the agent. If Not subscription.SubscriberSecurity Is Nothing Then ' Synchronously start the Distribution Agent for the subscription. subscription.SynchronizationAgent.Synchronize() Else Throw New ApplicationException("There is insufficent metadata to " + _ "synchronize the subscription. Recreate the subscription with " + _ "the agent job or supply the required agent properties at run time.") End If Else ' Do something here if the push subscription does not exist. Throw New ApplicationException(String.Format( _ "The subscription to '{0}' does not exist on {1}", _ publicationName, subscriberName)) End If Catch ex As Exception ' Implement appropriate error handling here. Throw New ApplicationException("The subscription could not be synchronized.", ex) Finally conn.Disconnect() End Try
