La table DBEventLog, dans un contexte JSync, permet de tracer les modifications effectuées en base (cf. la fiche A quoi sert la table DBEventLog (J_DBEVENTLOG) ?).
Le mécanisme de prise en compte de ces traces par tous les nœuds, et leur suppression de la table par le leader, peut être personnalisé à l'aide des propriétés suivantes (listées ici avec leurs valeurs par défaut, issues en général du fichier /WEB-INF/jalios/jcms.prop
) :
dbeventlog.scan-freq: 1
dbeventlog.clean.query.max-results: 1000
dbeventlog.clean.time-limit: 1440
dbeventlog.clean.urid-count: 10
A partir de JCMS 9 SP3 le mode de fonctionnement de la synchronisation entre les instances a été modifié.
Afin d'optimiser les performances, d'améliorer la reprise sur erreur et de limiter les engorgements liés à la trop grande volumétrie de la table j_dbeventlog, le leader va créer une entrée dans celle-ci pour chaque replica identifié.
De cette manière, chaque replica ne consulte que les enregistrements qui le concernent directement, et a pour tâche de supprimer ceux-ci une fois qu'il les a traités.
A cet effet, la configuration de jsync évolue. Une nouvelle propriété dbeventlog.explicit-urids
a fait son apparition, et va permettre au leader de transférer chaque mise à jour qu'il reçoit à chaque replica indiqué dans celle-ci. Les propriétés décrites précédemment (en dehors de dbeventlog.scan-freq
) deviennent obsolètes.
La configuration devient alors :
Pour tous les noeuds :
channel.url: # pas spécifique à jsync mais doit être correctement configurée pour fonctionner channel.urid: # pas spécifique à jsync mais doit être correctement configurée pour fonctionner
Pour le leader :
jsync.replica-url: # url privée du replica (généralement adresse ip + port d'accès à tomcat + context root) jsync.leader-url: # laisser vide : il s'agit de la configuration du leader ... jsync.explicit-replica-list: # renseigner les urls des replicas séparées par un espace dbeventlog.explicit-urids: # renseigner les urids des replicas, séparés par un espace
Pour chaque replica :
jsync.replica-url: # url privée du replica (généralement adresse ip + port d'accès à tomcat + context root) jsync.leader-url: # cette valeur doit être renseignée ... jsync.explicit-replica-list: # laisser vide dbeventlog.explicit-urids: # laisser vide
Remarques :
Voir aussi :