Prévention des erreurs d’insertion et de mise à jour dans Réplication de données d'instance
Vous pouvez empêcher les échecs d’insertion et de mise à jour dans Réplication de données d'instance (IDR) en spécifiant un filtre de nom de classe dans l’ensemble de réplications du producteur.
Lorsque vous répliquez une table parente et une ou plusieurs tables enfants, vous devez ajouter un filtre de sys_class_name à la table parente dans l’entrée sortante de votre jeu de réplications de créateur. Si le filtre sys_class_name est manquant, les échecs d’insertion et de mise à jour s’affichent dans dans les scénarios suivants :
- Un échec d’insertion se produit lorsqu’un enregistrement de la table enfant est répliqué, car le système tente deux insertions avec le même sys_id dans la table parente. L’ajout du filtre sys_class_name au parent empêche la violation de clé unique lors de l’insertion dans la table parente.
- Un nouvel enregistrement est ajouté à une table enfant répliquée sur l’instance du producteur. Réplication de données d'instance (IDR) crée initialement l’enregistrement dans la table parente du consommateur, mais pas dans la table enfant. Si l’enregistrement enfant est modifié sur l’instance de producteur, un échec de mise à jour se produit sur la table enfant de l’instance de consommateur pendant la réplication, car l’enregistrement n’existe que dans la table parente.
Si la table est un parent, indiquez si vous souhaitez répliquer l’une de ses tables enfants.
- Si vous souhaitez répliquer une ou plusieurs tables enfants, vous devez identifier la valeur sys_class_name de la table parente, puis ajouter un filtre de sys_class_name correspondant à la table parente.
Par exemple, Type de tâche est l’étiquette de sys_class_name sur la table Tâche [task]. Pour commencer à répliquer les incidents en plus des tâches, vous devez ajouter [Type de tâche] [est] [Tâche] à l’entrée sortante de la table Tâche [task].
- Si vous souhaitez uniquement répliquer la table parente, le filtre est facultatif.
- Si la table parente est déjà répliquée, vous devez modifier le parent et ajouter le filtre sys_class_name.
Si la table est un enfant, indiquez si vous souhaitez répliquer son parent.
- Si vous souhaitez reproduire également la table parente, vous devez identifier la valeur sys_class_name de la table parente, puis ajouter un filtre de sys_class_name correspondant à la table parente.
Par exemple, Type de tâche est l’étiquette de sys_class_name sur la table Tâche [task]. Pour commencer à répliquer des tâches en plus des incidents, vous devez ajouter [Type de tâche] [est] [Tâche] à l’entrée sortante de la table Tâche [task].
- Si vous souhaitez uniquement répliquer la table enfant, le filtre est facultatif.
- Si une ou plusieurs tables enfants sont déjà répliquées, vous devez ajouter le filtre de sys_class_name au parent.