TransSynchronizationAgent Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt die Funktionalität des Replication Verteilungs-Agent bereit.
public ref class TransSynchronizationAgent : MarshalByRefObject, IDisposable, Microsoft::SqlServer::Replication::ITransSynchronizationAgent
[System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)]
[System.Runtime.InteropServices.ComSourceInterfaces(typeof(Microsoft.SqlServer.Replication.IComStatusEvent))]
[System.Runtime.InteropServices.ComVisible(true)]
[System.Runtime.InteropServices.Guid("adeda98a-bdfc-4029-b6fb-991d6b468395")]
public class TransSynchronizationAgent : MarshalByRefObject, IDisposable, Microsoft.SqlServer.Replication.ITransSynchronizationAgent
[<System.Runtime.InteropServices.ClassInterface(System.Runtime.InteropServices.ClassInterfaceType.AutoDispatch)>]
[<System.Runtime.InteropServices.ComSourceInterfaces(typeof(Microsoft.SqlServer.Replication.IComStatusEvent))>]
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Runtime.InteropServices.Guid("adeda98a-bdfc-4029-b6fb-991d6b468395")>]
type TransSynchronizationAgent = class
inherit MarshalByRefObject
interface IDisposable
interface ITransSynchronizationAgent
Public Class TransSynchronizationAgent
Inherits MarshalByRefObject
Implements IDisposable, ITransSynchronizationAgent
- Vererbung
-
TransSynchronizationAgent
- Attribute
- Implementiert
Beispiele
Im folgenden Beispiel wird die Methode Synchronize auf die Instanz der Klasse TransSynchronizationAgent aufgerufen, die von der SynchronizationAgent Eigenschaft zur Synchronisation des Push-Subscriptions abgerufen wird.
// 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
Hinweise
Die Klasse TransSynchronizationAgent unterstützt die Möglichkeit, Abonnements programmatisch auf transaktionale oder Snapshot-Veröffentlichungen zu synchronisieren.
Konstruktoren
| Name | Beschreibung |
|---|---|
| TransSynchronizationAgent() |
Erstellt eine Instanz der TransSynchronizationAgent-Klasse. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| AltSnapshotFolder |
Erhält oder setzt den alternativen Snapshot-Ordner für das Abonnement. |
| ComErrorCollection |
Erhält eine Sammlung von Fehlern, die vom Replikationsagenten erzeugt werden. |
| Distributor |
Erhält oder setzt den Namen der Instanz des Microsoft SQL Server, die als Distributor für das Abonnement fungiert. |
| DistributorAddress |
Erhält oder setzt die Netzwerkadresse, die zur Verbindung zum Verteiler verwendet wird, wenn die DistributorNetwork Eigenschaft angegeben ist. |
| DistributorEncryptedPassword |
Erhält oder setzt das verschlüsselte Passwort, das bei der Verbindung zum Distributor verwendet wird, mittels SQL Server Authentication. |
| DistributorLogin |
Erhält oder setzt den Login-Namen, der beim Verbinden mit dem Distributor verwendet wird, mittels SQL Server-Authentifizierung. |
| DistributorNetwork |
Erhält oder setzt den Client Net-Library, der beim Anschluss an den Distributor verwendet wird. |
| DistributorPassword |
Erhält oder setzt das Passwort, das bei der Verbindung zum Distributor verwendet wird, mittels SQL Server-Authentifizierung. |
| DistributorSecurityMode |
Erhält oder setzt den Sicherheitsmodus, der bei der Verbindung zum Verteiler verwendet wird. |
| DtsPackageFileName |
Erhält oder setzt den Namen und Pfad eines Microsoft SQL Server 2000 Data Transformation Services (DTS)-Pakets, das zur Transformation von Befehlsreihensätzen verwendet wird, bevor sie auf einen Abonnenten angewendet werden. |
| DtsPackagePassword |
Erhält oder setzt das Besitzerpasswort, das verwendet wurde, um auf das von der Eigenschaft DtsPackageFileName angegebene Microsoft SQL Server 2000 Data Transformation Services (DTS)-Paket zuzugreifen. |
| FileTransferType |
Erhält oder bestimmt, wie die ursprünglichen Snapshot-Dateien an den Abonnenten übertragen werden. |
| HostName |
Erhält oder setzt den verwendeten Host-Namen. |
| LastUpdatedTime |
Erhält den Zeitstempel des letzten Mals, als der Replikationsagent das Abonnement synchronisiert hat. |
| LoginTimeout |
Erhält oder setzt die maximale Sekundenanzahl für die Wartezeit, bis Verbindungen hergestellt werden. |
| MaxDeliveredTransactions |
Erhält oder legt die maximale Anzahl der Transaktionen fest, die während einer einzelnen Agentenausführung auf den Abonnenten angewendet werden. |
| Output |
Erhält oder setzt den Dateinamen und den Pfad der Agent-Ausgabedatei. |
| OutputVerboseLevel |
Erhält oder legt die Menge der Informationen fest, die vom Verteilungs-Agent in der Agentenausgabedatei protokolliert wird. |
| ProfileName |
Erhält oder setzt den Namen des Profils, das vom Agenten verwendet wird. |
| Publication |
Bekommt oder setzt den Namen der Publikation. |
| Publisher |
Erhält oder setzt den Namen der Microsoft SQL Server-Instanz, die der Publisher für das Abonnement ist. |
| PublisherDatabase |
Erhält oder setzt den Namen der Publikationsdatenbank. |
| QueryTimeout |
Erhält oder legt die Anzahl der Sekunden fest, die für interne Abfragen erlaubt sind. |
| SecureDistributorEncryptedPassword |
Erhält oder setzt das sichere, verschlüsselte Passwort für den Distributor. |
| SecureSubscriberEncryptedPassword |
Erhält oder setzt das sichere, verschlüsselte Passwort für den Abonnenten. |
| SkipErrors |
Erhält oder setzt eine kolon-separierte Liste der Fehlerzahlen, die dieser Agent überspringen soll. |
| Subscriber |
Erhält oder setzt den Namen der Instanz von Microsoft SQL Server, die der Abonnent ist. |
| SubscriberDatabase |
Erhält oder setzt den Namen der Abonnementdatenbank. |
| SubscriberDatabasePath |
Erhalte oder setze den Datenbankpfad für den Abonnenten. |
| SubscriberDataSourceType |
Erhält oder legt die Art der Datenquelle fest, die als Abonnent verwendet wird. |
| SubscriberEncryptedPassword |
Erhält oder setzt das verschlüsselte Passwort für den Abonnenten. |
| SubscriberLogin |
Erhält oder setzt den Login-Namen, der beim Verbinden mit dem Abonnenten verwendet wird, mittels SQL Server-Authentifizierung. |
| SubscriberPassword |
Erhält oder setzt das Passwort, das beim Verbinden mit dem Abonnenten verwendet wird, mittels SQL Server-Authentifizierung. |
| SubscriberSecurityMode |
Erhält oder setzt den Sicherheitsmodus, der beim Verbinden mit dem Publisher verwendet wird. |
| SubscriptionType |
Es gibt oder bestimmt, ob das Abonnement ein Push- oder Pull-Abonnement ist. |
| UndeliveredCommands |
Erhält die Anzahl der nicht ausgegebenen Befehle. |
| UndeliveredTransactions |
Erhält die Anzahl der nicht ausgelieferten Transaktionen. |
| UseInProcLoader |
Erhält oder setzt einen Wert, der anzeigt, ob der Befehl BULK INSERT verwendet werden soll, wenn Snapshot-Dateien beim Abonnenten angewendet werden. |
| WorkingDirectory |
Erhält oder setzt das Arbeitsverzeichnis, aus dem Snapshot-Dateien beim Einsatz des File Transfer Protocol (FTP) abgerufen werden. |
Methoden
| Name | Beschreibung |
|---|---|
| Abort() |
Abbruch der TransSynchronizationAgent Operation. |
| Dispose() |
Gibt alle Ressourcen frei, die von der aktuellen Instanz der TransSynchronizationAgent Klasse verwendet werden. |
| Dispose(Boolean) |
Gibt alle Ressourcen frei, die von der TransSynchronizationAgent-Klasse verwendet werden. |
| Finalize() |
Finalisiert das TransSynchronizationAgent. |
| IsSnapshotRequired() |
Verbindet sich mit dem Distributor und dem Abonnenten, um zu bestimmen, ob bei der nächsten Agentensynchronisation ein neuer Snapshot angewendet wird. |
| Synchronize() |
Startet den Verteilungs-Agent, um das Abonnement zu synchronisieren. |
Ereignisse
| Name | Beschreibung |
|---|---|
| ComStatus |
Tritt auf, wenn der Verteilungs-Agent Synchronization Com-Statusinformationen zurückgibt. |
| Status |
Tritt auf, wenn der Verteilungs-Agent Synchronisationsstatusinformationen zurückgibt. |
Gilt für:
Threadsicherheit
Die Klasse TransSynchronizationAgent unterstützt keine Multithreaded Apartments. Man kann ein Single-Threaded Apartment angeben, indem man das [STAThread] Attribut auf der Methode deklariert, das der Haupteinstiegspunkt für die Anwendung ist. Dies ist der Standard für Microsoft Windows-basierte Anwendungen, die mit Microsoft Visual Studio erstellt werden.