Énumération CONSTRAINT_CONFLICT_REASON
Représente les raisons pour lesquelles un conflit de contraintes peut se produire.
Syntaxe
typedef enum
{
CCR_OTHER,
CCR_COLLISION,
CCR_NOPARENT,
CCR_IDENTITY
} CONSTRAINT_CONFLICT_REASON;
Membres
Terme |
Définition |
CCR_OTHER |
L'élément ou l'unité de modification ne respecte pas une autre contrainte du réplica de destination. Le fournisseur peut éventuellement spécifier l'ID de l'élément en conflit comme ID d'élément en conflit. |
CCR_COLLISION |
L'élément ne peut pas être enregistré car il est en conflit avec un autre élément du magasin, comme un élément qui porte le même nom qu'un élément existant. Le fournisseur doit spécifier l'ID de l'élément de destination comme ID d'élément en conflit. |
CCR_NOPARENT |
L'élément ne peut pas être enregistré dans le magasin de données hiérarchique parce qu'il requiert un élément parent qui n'existe pas dans le magasin. Le fournisseur peut éventuellement spécifier l'ID du parent manquant comme ID d'élément en conflit. |
CCR_IDENTITY |
Le réplica source et le réplica de destination sont en désaccord sur l'identité d'un élément. Par exemple, le réplica X résout un conflit de collision entre des éléments ayant les ID id1 et id2 en fusionnant les éléments et en attribuant l'ID id1 à l'élément fusionné. Le réplica Y résout un conflit de collision entre des éléments ayant les ID id1 et id2 en renommant l'élément identifié par id1 et en conservant les deux éléments. Le réplica X envoie l'élément fusionné identifié par id1 et un objet tombstone de fusion qui indique que id2 a été fusionné dans id1. Le conflit sur id1 est détecté et résolu en tant que conflit d'accès concurrentiel. Le conflit sur id2 est détecté et signalé à l'application de synchronisation en tant que conflit d'identité en spécifiant CCR_IDENTITY comme raison du conflit. L'application détermine s'il faut résoudre le conflit en conservant la modification de la source ou la modification de destination. |
Notes
Le fournisseur de destination utilise un membre de l'objet CONSTRAINT_CONFLICT_REASON pour spécifier la raison d'un conflit de contraintes lorsqu'il signale un conflit de contraintes à l'applicateur de modifications. Pour plus d'informations sur les conflits de contraintes, consultez Détection et résolution des conflits de contraintes.
Spécifications
En-tête : Synchronization.h