Procédure : gérer les partitions d'une publication de fusion avec les filtres paramétrables (programmation RMO)

Pour mieux gérer une publication avec les filtres paramétrables, vous pouvez par programmation créer, énumérer ou supprimer les partitions d'Abonné, en utilisant les objets RMO (Replication Management Objects). Pour plus d'informations sur la création de partitions d'Abonné, consultez Procédure : créer une capture instantanée pour une publication de fusion avec des filtres paramétrables (programmation RMO). Vous pouvez obtenir les informations suivantes sur les partitions existantes :

  • la valeur et la fonction de filtrage sur lesquelles la partition est basée ;

  • le nom du travail qui génère une capture instantanée paramétrable pour l'Abonné ;

  • la dernière fois qu'un travail de capture instantanée paramétrable a été exécuté ;

Notes

Lorsqu'une publication a paramétré des filtres qui génèrent des abonnements avec des partitions ne se chevauchant pas, et si un abonnement particulier est perdu et doit être recréé, vous devez effectuer les opérations suivantes : supprimez la partition à laquelle s'abonner, recréez l'abonnement, puis recréez la partition. Pour plus d'informations, consultez Filtres de lignes paramétrés. La réplication génère des scripts de création pour les partitions d'Abonné existantes lors de la génération d'un script de création de publication. Pour plus d'informations, consultez Création de scripts de réplication.

Pour consulter les informations sur les partitions existantes

  1. Créez une connexion au serveur de publication en utilisant la classe ServerConnection.

  2. Créez une instance de la classe MergePublication. Définissez les propriétés Name et DatabaseName de la publication et définissez la propriété ConnectionContext avec la valeur ServerConnection créée au cours de l'étape 1.

  3. Appelez la méthode LoadProperties pour obtenir les propriétés de l'objet. Si cette méthode retourne false, soit les propriétés de la publication ont été définies de manière incorrecte à l'étape 2, soit la publication n'existe pas.

  4. Appelez la méthode EnumMergePartitions et passez le résultat à un tableau d'objets MergePartition.

  5. Pour chaque objet MergePartition du tableau, récupérez les propriétés dignes d'intérêt.

Pour supprimer les partitions existantes

  1. Créez une connexion au serveur de publication en utilisant la classe ServerConnection.

  2. Créez une instance de la classe MergePublication. Définissez les propriétés Name et DatabaseName de la publication et définissez la propriété ConnectionContext avec la valeur ServerConnection créée au cours de l'étape 1.

  3. Appelez la méthode LoadProperties pour obtenir les propriétés de l'objet. Si cette méthode retourne false, soit les propriétés de la publication ont été définies de manière incorrecte à l'étape 2, soit la publication n'existe pas.

  4. Appelez la méthode EnumMergePartitions et passez le résultat à un tableau d'objets MergePartition.

  5. Pour chaque objet MergePartition du tableau, déterminez si la partition doit être supprimée. Cette décision repose habituellement sur la valeur de la propriété DynamicFilterLogin ou de la propriété DynamicFilterHostName.

  6. Appelez la méthode RemoveMergePartition sur l'objet MergePublication à partir de l'étape 2. Passez l'objet MergePartition créé à l'étape 5.

  7. Répétez l'étape 6 pour chaque partition supprimée.