Convalida delle informazioni sulle partizioni per un Sottoscrittore di tipo mergeValidate Partition Information for a Merge Subscriber

Quando si definisce un filtro di riga con parametri per una pubblicazione di tipo merge, si utilizza una funzione che fa riferimento a informazioni sul Sottoscrittore, ad esempio il nome di accesso del Sottoscrittore.When you define a parameterized row filter for a merge publication, you use a function that references Subscriber information, such as the Subscriber's login name. Per impostazione predefinita, le informazioni sul Sottoscrittore vengono convalidate dalla replica in base a tale funzione prima di ogni sincronizzazione e ogni volta che uno snapshot viene applicato al Sottoscrittore.By default, replication validates Subscriber information based on that function before each synchronization and whenever a snapshot is applied at the Subscriber. Il processo di convalida garantisce il partizionamento corretto dei dati per ogni Sottoscrittore.The validation process ensures that data is partitioned correctly for each Subscriber. Il comportamento di convalida è controllato dalla proprietà di pubblicazione validate_subscriber_info, che può essere modificata mediante sp_changemergepublication (Transact-SQL) oppure nella pagina Opzioni sottoscrizione della finestra di dialogo Proprietà pubblicazione.Validation behavior is controlled by the validate_subscriber_info publication property, which can be changed using sp_changemergepublication (Transact-SQL) or on the Subscription Options page of the Publication Properties dialog box. Per ulteriori informazioni sulla modifica delle proprietà di pubblicazione, vedere View and Modify Publication Properties.For more information about changing publication properties, see View and Modify Publication Properties.

Funzionamento della convalida delle partizioniHow Partition Validation Works

Quando una pubblicazione viene filtrata, ad esempio mediante la funzione SUSER_SNAME(), l'agente di merge applica lo snapshot iniziale a ogni Sottoscrittore in base ai dati validi per l'espressione SUSER_SNAME() .When a publication is filtered, for example, using the function SUSER_SNAME(), the Merge Agent applies the initial snapshot to each Subscriber based on data that is valid for the SUSER_SNAME() expression.

Se la convalida è abilitata, quando il Sottoscrittore si riconnette al server di pubblicazione per la successiva sincronizzazione, l'agente di merge convalida le informazioni nel Sottoscrittore e garantisce che la partizione di ogni Sottoscrittore corrisponda a quella ricevuta nello snapshot iniziale.If validation is enabled, when the Subscriber reconnects to the Publisher for the next synchronization, the Merge Agent validates the information at the Subscriber and ensures that each Subscriber's partition is the same as the one received in the initial snapshot. Per ogni successiva applicazione di snapshot o merge, l'agente di merge convalida la partizione di ogni Sottoscrittore.For each subsequent merge or snapshot application, the Merge Agent validates each Subscriber's partition.

Se l'agente di merge rileva che la funzione utilizzata nell'espressione di filtro restituisce un valore diverso rispetto allo snapshot iniziale, l'applicazione di snapshot o merge ha esito negativo e potrebbe essere necessaria la reinizializzazione della sottoscrizione del Sottoscrittore.If the Merge Agent detects that the function used in the filtering expression returns a different value than it did at the initial snapshot, the merge or snapshot application fails, and that Subscriber's subscription might require reinitialization. La reinizializzazione può risultare necessaria per evitare i problemi che possono verificarsi in caso di modifica delle impostazioni di merge di un Sottoscrittore. Può tuttavia rivelarsi sufficiente modificare le informazioni nel Sottoscrittore, ad esempio il nome di accesso, ripristinando il valore utilizzato al momento dello snapshot originale.Reinitialization might be necessary to prevent problems that can arise if the merge settings of a Subscriber are changed, but it might be sufficient to change information at the Subscriber, such as the login name, back to the value used at the time of the original snapshot.

Quando l'agente di merge convalida una partizione, oltre a convalidare la partizione rispetto ai valori restituiti dalle funzioni utilizzate nelle espressioni di filtro, controlla se lo snapshot è stato generato prima di modifiche che ne compromettono la validità, come operazioni di pulizia dei metadati o modifiche dello schema.When the Merge Agent validates a partition, in addition to validating the partition against the values returned by any functions used in filtering expressions, the agent also checks whether the snapshot was generated prior to changes that invalidate it, such as metadata cleanup operations or schema changes. Se uno snapshot partizionato è obsoleto, l'agente di merge restituirà un errore e sarà necessario rigenerare uno snapshot partizionato per il Sottoscrittore in base a uno snapshot regolare corrente.If a partitioned snapshot is too old, the Merge Agent will return an error and you must regenerate a partitioned snapshot for that Subscriber based on a current regular snapshot.

Vedere ancheSee Also

Amministrazione (Replica) Administration (Replication)
Procedure consigliate per l'amministrazione della replica Best Practices for Replication Administration
Reinizializzare le sottoscrizioni Reinitialize Subscriptions
Convalidare i dati replicati Validate Replicated Data