Procedura: Gestione delle partizioni di una pubblicazione di tipo merge con filtri con parametri (programmazione RMO)

Per migliorare la gestione di una pubblicazione con filtri con parametri, è possibile creare nuove partizioni del Sottoscrittore a livello di programmazione, enumerare le partizioni del Sottoscrittore esistenti ed eliminare quelle desiderate utilizzando oggetti RMO (Replication Management Objects). Per informazioni sulla creazione di partizioni del Sottoscrittore, vedere Procedura: Creazione di uno snapshot per una pubblicazione di tipo merge con filtri con parametri (programmazione RMO). È possibile ottenere le informazioni seguenti sulle partizioni esistenti:

  • Valore e funzione di filtro su cui si basa la partizione.

  • Nome del processo che genera uno snapshot con parametri per il Sottoscrittore.

  • Ora dell'ultima esecuzione di un processo di snapshot con parametri.

Nota

Se una pubblicazione contiene filtri con parametri che producono sottoscrizioni con partizioni non sovrapposte ed è necessario ricreare un'eventuale sottoscrizione persa, rimuovere la partizione sottoscritta, ricreare la sottoscrizione, quindi ricreare la partizione. Per ulteriori informazioni, vedere Filtri di riga con parametri. La replica genera script di creazione per le partizioni del Sottoscrittore esistenti al momento della generazione di uno script per la creazione della pubblicazione. Per ulteriori informazioni, vedere Creazione di script di replica.

Per visualizzare informazioni sulle partizioni esistenti

  1. Creare una connessione al server di pubblicazione tramite la classe ServerConnection.

  2. Creare un'istanza della classe MergePublication. Impostare le proprietà Name e DatabaseName per la pubblicazione, quindi impostare la proprietà ConnectionContext sull'oggetto ServerConnection creato nel passaggio 1.

  3. Chiamare il metodo LoadProperties per recuperare le proprietà dell'oggetto. Se questo metodo restituisce false, le proprietà di pubblicazione sono state definite in modo non corretto nel passaggio 2 oppure la pubblicazione non esiste.

  4. Chiamare il metodo EnumMergePartitions e passare il risultato a una matrice di oggetti MergePartition.

  5. Per ogni oggetto MergePartition nella matrice, ottenere le proprietà desiderate.

Per eliminare partizioni esistenti

  1. Creare una connessione al server di pubblicazione tramite la classe ServerConnection.

  2. Creare un'istanza della classe MergePublication. Impostare le proprietà Name e DatabaseName per la pubblicazione, quindi impostare la proprietà ConnectionContext sull'oggetto ServerConnection creato nel passaggio 1.

  3. Chiamare il metodo LoadProperties per recuperare le proprietà dell'oggetto. Se questo metodo restituisce false, le proprietà di pubblicazione sono state definite in modo non corretto nel passaggio 2 oppure la pubblicazione non esiste.

  4. Chiamare il metodo EnumMergePartitions e passare il risultato a una matrice di oggetti MergePartition.

  5. Per ogni oggetto MergePartition nella matrice, determinare se la partizione deve essere eliminata. Questa decisione si basa in genere sul valore della proprietà DynamicFilterLogin o DynamicFilterHostName.

  6. Chiamare il metodo RemoveMergePartition sull'oggetto MergePublication indicato nel passaggio 2. Passare l'oggetto MergePartition indicato nel passaggio 5.

  7. Ripetere il passaggio 6 per ogni partizione eliminata.