Home > Engine & Repository
Piste d'audit
Introduction
Toute mise à jour persistente du référentiel EBX.Platform est systématiquement journalisée dans un fichier XML de piste d'audit. C'est aussi le cas pour toute exécution de procédure (qui est considérée comme une transaction, même si elle n'effectue pas de mise à jour). Pour chaque transaction, les informations suivantes sont journalisées :
-
le type de transaction (création d'une instance, modification d'un enregistrement, suppression, procédure spécifique, etc.) ;
-
la branche ou la version où la transaction est exécutée ;
-
la source de la transaction : si l'action est initiée via l'outil EBX.Manager, cette source est décrite par le login utilisateur, l'identifiant de session HTTP et l'adresse IP du client ; si la session est initiée programmatiquement, la source est décrite par l'identifiant utilisateur seul ;
-
également comme information de session, la valeur optionnelle "trackingInfo" ;
-
l'horodatage de la transaction (en millisecondes) ;
-
le UUID de la transaction (conforme à la variante Leach-Salz, version 1) ;
-
en cas d'échec, la raison de cet échec ;
-
le détail des mises à jour effectuées (s'il y a des mises à jour et si le détail a été activé, voir section suivante).
Détail des mises à jour et gestion du disque
La piste d'audit est à même de décrire toutes les mises à jour effectuées dans le référentiel EBX.Platform, au niveau le plus fin. En conséquence, les fichiers peuvent être volumineux et le répertoire d'audit doit être surveillé avec attention. Les caractéristiques suivantes devront, par ailleurs, être prises en compte :
-
Si un import d'archive est exécuté en mode non interactif (sans change set), la piste d'audit ne détaillera pas les mises à jour, elle spécifie seulement l'archive qui a été importée. En ce cas, s'il est nécessaire de conserver une trace fine de l'import, l'archive utilisée doit être conservée.
-
Dans les cas d'import interactif et de fusion interactive d'une branche, la taille du journal qui en résulte est environ égale à trois fois la taille de l'archive décompressée. En outre, le mécanisme interne journalise dans un fichier temporaire (situé dans le répertoire d'audit) qui est ensuite recopié sur le fichier d'audit courant. Il faudra donc prévoir un espace disque disponible d' au moins six fois la taille décompressée de la plus grande archive à importer .
-
Dans le contexte d'une procédure spécifique qui effectue de nombreuses mises à jour n'ayant pas besoin d'être auditées, il reste possible au développeur de désactiver l'historique détaillé au moyen de la méthode: ProcedureContext.setHistoryActivation(boolean) .
Voir aussi :
Organisation des fichiers
L'ensemble des fichiers de piste d'audit sont placés dans le répertoire
${
ebx.repository.directory }/History .
Fichiers d'historisation "fermés"
Chaque fichier est nommé selon la syntaxe suivante :
aaaa-mm-dd
-part
nn
.xml
où
aaaa-mm-dd désigne la date du fichier et
nn désigne l'index du fichier dans ce jour (plusieurs fichiers peuvent exister pour une même journée).
Fichiers temporaires pour l'écriture
Quand le fichier d'historisation est en cours d'écriture, la structuration XML implique de travailler en mode ouvert. Les éléments XML des modifications sont à cet effet ajoutés au fur et à mesure dans un fichier texte temporaire nommé :
aaaa-mm-dd
-part
nn
Content.txt
Le format standard XML reste accessible via un fichier XML d'accompagnement qui fait référence au fichier texte sus-nommé. Ce fichier est nommé :
aaaa-mm-dd
-part
nn
Ref.xml
Ces deux fichiers sont réagrégés dans un fichier XML "fermé" unique quand l'un des événements suivants survient :
-
arrêt propre du référentiel EBX.Platform ;
-
redémarrage de EBX.Platform (suite à un arrêt brutal de la machine virtuelle qui n'a pas permis la fermeture prévue au cas 1).
Exemple d'un répertoire de piste d'audit :
|
2004-04-05-part00.xml 2004-04-05-part01.xml 2004-04-06-part00.xml 2004-04-06-part01.xml 2004-04-06-part02.xml 2004-04-06-part03.xml 2004-04-07-part00.xml 2004-04-10-part00.xml 2004-04-11-part00Content.txt 2004-04-11-part00Ref.xml |
Home > Engine & Repository