MergeDynamicSnapshotJob Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Contiene informazioni sul processo dell'agente snapshot che genera lo snapshot di dati per una sottoscrizione di una pubblicazione di tipo merge con un filtro di riga con parametri.
public ref class MergeDynamicSnapshotJob sealed
public sealed class MergeDynamicSnapshotJob
type MergeDynamicSnapshotJob = class
Public NotInheritable Class MergeDynamicSnapshotJob
- Ereditarietà
-
MergeDynamicSnapshotJob
Esempio
// Define the server, database, and publication names
string publisherName = publisherInstance;
string publicationName = "AdvWorksSalesOrdersMerge";
string publicationDbName = "AdventureWorks2012";
string distributorName = publisherInstance;
MergePublication publication;
MergePartition partition;
MergeDynamicSnapshotJob snapshotAgentJob;
ReplicationAgentSchedule schedule;
// Create a connection to the Publisher.
ServerConnection publisherConn = new ServerConnection(publisherName);
// Create a connection to the Distributor to start the Snapshot Agent.
ServerConnection distributorConn = new ServerConnection(distributorName);
try
{
// Connect to the Publisher.
publisherConn.Connect();
// Set the required properties for the publication.
publication = new MergePublication();
publication.ConnectionContext = publisherConn;
publication.Name = publicationName;
publication.DatabaseName = publicationDbName;
// If we can't get the properties for this merge publication,
// then throw an application exception.
if (publication.LoadProperties() || publication.SnapshotAvailable)
{
// Set a weekly schedule for the filtered data snapshot.
schedule = new ReplicationAgentSchedule();
schedule.FrequencyType = ScheduleFrequencyType.Weekly;
schedule.FrequencyRecurrenceFactor = 1;
schedule.FrequencyInterval = Convert.ToInt32(0x001);
// Set the value of Hostname that defines the data partition.
partition = new MergePartition();
partition.DynamicFilterHostName = hostname;
snapshotAgentJob = new MergeDynamicSnapshotJob();
snapshotAgentJob.DynamicFilterHostName = hostname;
// Create the partition for the publication with the defined schedule.
publication.AddMergePartition(partition);
publication.AddMergeDynamicSnapshotJob(snapshotAgentJob, schedule);
}
else
{
throw new ApplicationException(String.Format(
"Settings could not be retrieved for the publication, " +
" or the initial snapshot has not been generated. " +
"Ensure that the publication {0} exists on {1} and " +
"that the Snapshot Agent has run successfully.",
publicationName, publisherName));
}
}
catch (Exception ex)
{
// Do error handling here.
throw new ApplicationException(string.Format(
"The partition for '{0}' in the {1} publication could not be created.",
hostname, publicationName), ex);
}
finally
{
publisherConn.Disconnect();
if (distributorConn.IsOpen) distributorConn.Disconnect();
}
' Define the server, database, and publication names
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publicationDbName As String = "AdventureWorks2012"
Dim distributorName As String = publisherInstance
Dim publication As MergePublication
Dim partition As MergePartition
Dim snapshotAgentJob As MergeDynamicSnapshotJob
Dim schedule As ReplicationAgentSchedule
' Create a connection to the Publisher.
Dim publisherConn As ServerConnection = New ServerConnection(publisherName)
' Create a connection to the Distributor to start the Snapshot Agent.
Dim distributorConn As ServerConnection = New ServerConnection(distributorName)
Try
' Connect to the Publisher.
publisherConn.Connect()
' Set the required properties for the publication.
publication = New MergePublication()
publication.ConnectionContext = publisherConn
publication.Name = publicationName
publication.DatabaseName = publicationDbName
' If we can't get the properties for this merge publication,
' then throw an application exception.
If (publication.LoadProperties() Or publication.SnapshotAvailable) Then
' Set a weekly schedule for the filtered data snapshot.
schedule = New ReplicationAgentSchedule()
schedule.FrequencyType = ScheduleFrequencyType.Weekly
schedule.FrequencyRecurrenceFactor = 1
schedule.FrequencyInterval = Convert.ToInt32("0x001", 16)
' Set the value of Hostname that defines the data partition.
partition = New MergePartition()
partition.DynamicFilterHostName = hostname
snapshotAgentJob = New MergeDynamicSnapshotJob()
snapshotAgentJob.DynamicFilterHostName = hostname
' Create the partition for the publication with the defined schedule.
publication.AddMergePartition(partition)
publication.AddMergeDynamicSnapshotJob(snapshotAgentJob, schedule)
Else
Throw New ApplicationException(String.Format( _
"Settings could not be retrieved for the publication, " + _
" or the initial snapshot has not been generated. " + _
"Ensure that the publication {0} exists on {1} and " + _
"that the Snapshot Agent has run successfully.", _
publicationName, publisherName))
End If
Catch ex As Exception
' Do error handling here.
Throw New ApplicationException(String.Format( _
"The partition for '{0}' in the {1} publication could not be created.", _
hostname, publicationName), ex)
Finally
publisherConn.Disconnect()
If distributorConn.IsOpen Then
distributorConn.Disconnect()
End If
End Try
Commenti
Questo spazio dei nomi, classe o membro è supportato solo nella versione 2.0 di Microsoft .NET Framework.
Thread safety
Tutti i membri statici pubblici (Shared
in Microsoft Visual Basic) di questo tipo sono sicuri per le operazioni multithreaded. Non è invece garantita la sicurezza dei membri dell'istanza.
Costruttori
MergeDynamicSnapshotJob() |
Crea una nuova istanza della classe MergeDynamicSnapshotJob. |
Proprietà
DynamicFilterHostName |
Ottiene o imposta il valore fornito alla funzione HOST_NAME (Transact-SQL) per generare lo snapshot dei dati, quando il filtro di riga con parametri viene definito usando questa funzione. |
DynamicFilterLogin |
Ottiene o imposta il valore fornito alla funzione SUSER_SNAME (Transact-SQL) per generare lo snapshot dei dati, quando il filtro di riga con parametri viene definito usando questa funzione. |
DynamicSnapshotLocation |
Ottiene o imposta la cartella del sistema operativo utilizzata per archiviare lo snapshot filtrato generato dal processo dell'agente snapshot. |
JobId |
Ottiene o imposta l'ID processo di Microsoft SQL Server Agent, in formato esadecimale, che genera lo snapshot filtrato per il Sottoscrittore. |
Name |
Ottiene o imposta il nome del processo dell'agente snapshot che genera lo snapshot filtrato per il Sottoscrittore. |
UserData |
Ottiene o imposta un oggetto che consente di collegare dati personalizzati a questa istanza della classe MergeDynamicSnapshotJob. |
Si applica a
Vedi anche
- AddMergeDynamicSnapshotJob(MergeDynamicSnapshotJob, ReplicationAgentSchedule)
- ScriptMergeDynamicSnapshotJob(MergeDynamicSnapshotJob, ReplicationAgentSchedule, ScriptOptions)
- SUSER_SNAME (Transact-SQL)
- Procedura: Gestione delle partizioni di una pubblicazione di tipo merge con filtri con parametri (programmazione RMO)