Właściwość TransSubscription.SynchronizationAgent
Pobiera wystąpienie TransSynchronizationAgent klasy, który może służyć do synchronizacji subskrypcja.
Przestrzeń nazw: Microsoft.SqlServer.Replication
Zestaw: Microsoft.SqlServer.Rmo (w Microsoft.SqlServer.Rmo.dll)
Składnia
'Deklaracja
Public ReadOnly Property SynchronizationAgent As TransSynchronizationAgent
Get
'Użycie
Dim instance As TransSubscription
Dim value As TransSynchronizationAgent
value = instance.SynchronizationAgent
public TransSynchronizationAgent SynchronizationAgent { get; }
public:
property TransSynchronizationAgent^ SynchronizationAgent {
TransSynchronizationAgent^ get ();
}
member SynchronizationAgent : TransSynchronizationAgent
function get SynchronizationAgent () : TransSynchronizationAgent
Wartość właściwości
Typ: Microsoft.SqlServer.Replication.TransSynchronizationAgent
A TransSynchronizationAgent obiektu.
Uwagi
Wywołanie Synchronize Metoda zwracane TransSynchronizationAgent obiektu do synchronizacji subskrypcja.
Powinna wywołać CommitPropertyChanges zapisać wszelkie zmiany właściwość na serwerze przed pobraniem SynchronizationAgent do synchronizacji subskrypcja.
Jeśli subskrypcja jest tworzony z wartością false dla CreateSyncAgentByDefault, nie utworzono zadanie agenta dystrybucji dla subskrypcji.Należy określić dodatkowe właściwości na zwracane TransSynchronizationAgent obiekt, zanim będzie można używać do synchronizacji subskrypcja.
SynchronizationAgent właściwość mogą być pobierane tylko przez członków sysadmin roli serwera stałych w Wydawca, członkowie db_owner ustaloną rola bazy danych na bazę danych w publikacja lub członków listy dostępu publikacja (PAL) dla publikacja, do której należy subskrypcja.
Pobieranie SynchronizationAgent jest równoważne wykonywanie sp_helpsubscription (języka Transact-SQL).
Ten obszar nazw, klasy lub element członkowski jest obsługiwany tylko w wersja 2.0.NET Framework.
Przykłady
// Define the server, publication, and database names.
string subscriberName = subscriberInstance;
string publisherName = publisherInstance;
string publicationName = "AdvWorksProductTran";
string subscriptionDbName = "AdventureWorks2008R2Replica";
string publicationDbName = "AdventureWorks2008R2";
// 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 = "AdventureWorks2008R2Replica"
Dim publicationDbName As String = "AdventureWorks2008R2"
' 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