AXOPEN

W7 Logs sous Planisware 5

Les actions et transactions réalisées dans P5 sont loggées dans les fichiers de logs de l’application. (cf. "Les fichiers de log P5"). Ainsi, jusqu’à la version OPX2 R4, le seul moyen d’analyser l’activité de l’application consistait à mettre en place une solution permettant d’analyser les fichiers de logs générés par l’application. Afin de faciliter l’analyse des transactions de P5 (en termes de performances, de nombre d'erreurs, de nombre de connexions etc.) une fonctionnalité de stockage structuré des logs de transactions a été développée depuis la P5 SP1. Il s’agit des W7 Logs.

Principe :

Les W7 Logs permettent de stocker en Base De Données (BDD) de manière structurée les traces des transactions réalisées dans P5 (connexions utilisateur, actions réalisées dans P5…).  A chaque transaction une ligne est créée dans la table W7_LOGS de la BDD de l’application sous P5. Seules les transactions que l’on souhaite tracer seront enregistrées dans la table W7_LOG.

Format de la table des W7_LOG :

Nom de colonne Type de données Valeur Nullable Description
WHEN VARCHAR2(64) Yes  
WHOREALNAME VARCHAR2(64) Yes  
WHOLOGONNAME VARCHAR2(64) Yes  
WHATVERB VARCHAR2(20) Yes  
WHATNOUN VARCHAR2(20) Yes  
WHATSUCCESS VARCHAR2(8) Yes  
WHERETYPE VARCHAR2(20) Yes  
WHERENAME VARCHAR2(128) Yes  
WHEREFROMTYPE VARCHAR2(20) Yes  
WHEREFROMNAME VARCHAR2(128) Yes  
WHERETOTYPE VARCHAR2(20) Yes  
WHERETONAME VARCHAR2(128) Yes  
ONWHATTYPE VARCHAR2(20) Yes  
ONWHATPATH VARCHAR2(150) Yes  
ONWHATNAME VARCHAR2(110) Yes  
INFO VARCHAR2(3900) Yes  
PERFDATA VARCHAR2(256) Yes  
PERFDELTA VARCHAR2(256) Yes  
HOST VARCHAR2(256) Yes Serveur hôte du processus (IP ou hostname)
PORT NUMBER Yes Port du processus Planisware
PID NUMBER Yes PID du processus Planisware 
OPX2_DATE DATE Yes  
PDATE DATE Yes  

 

Paramétrage et pré-requis :

Pour fonctionner les W7_LOGS ont besoin des patchs suivants :

  • sc5976 (3.43)
  • sc5977 (3.36)
  • sc6119 (3.6)
  • sc6222 (3.2)
  • sc6285 (3.2)
  • sc6306 (3.1)
  • sc6307 (3.1)

De plus il est nécessaire d’indiquer dans le fichier de paramétrage « intranet.ini » le fonctionnement souhaité avec les options souhaitées. Voici un exemple de lignes de configuration :

;; W7
(setq w7::*log-list* '(:user-load
       :infos
       :error
       ;:DATABASE
       ;:ACTION
       :APPLET-SESSION
       ;:OBJECTS-UPDATE
       ;:DB-SESSION
       :transaction :transaction-time :transaction-client-time :transaction-client-cpu-time
       :supervision-transactions :supervision-data :supervision-process-size :supervision-load
       ))
(setq w7::*log-in-database* t)

;; nil -> delete auto ; 0 -> no delete ; N -> N days
(setq w7::*keep-logs* 2) ;; keep 2 days:

Dans l'exemple précédent les éléments de la "log-list" préfixés par ":" (ex. :infos) sont loggés en BDD et ceux préfixés par ";:" (ex. ;:DATABASE) ne le sont pas car ils sont commentés. Cette configuration permettent de définir les paramètres suivants :

  • log-list
  • log-in-database
  • keep-logs

Purge automatique de la table :

Comme indiqué précédemment la durée de rétention des lignes de W7_LOG est paramétrable dans le fichier « intranet.ini » avec le paramètre "keep-log".

Pour information la suppression des enregistrements trop anciens est réalisée lors du démarrage des Intranet Server (IS). A noter que chacun des IS supprime les logs qu’il a générés (qu’il soit Master ou Slave). Donc par exemple un IS hébergé par le serveur « my_P5_serveur » et disponible sur le port 8401 va indiquer dans ses logs HOST=my_P5_server et PORT=8401. A chaque (re)démarrage de l’IS celui-ci va supprimer dans la table des W7_LOG tous les enregistrements du type HOST=my_P5_server et PORT=8401 et dont la date est supérieure au paramètre de purge.

Exemple de logs où l'on peut voir les commandes de purge des W7 LOG :

intranet-2012-04-21-8401.log

Transaction SYSTEM 12029-14 SQL Connection test
Transaction SYSTEM 12029-14 SQL done 2 ms
Transaction SYSTEM 12029-14 SQL EXECUTE: delete from W7_LOG
where HOST = 'my_P5_server' and PORT = '8401' and
OPX2_DATE < to_date('2012/04/19 23:17:01','YYYY/MM/DD HH24:MI:SS')
Transaction SYSTEM 12029-14 SQL done 9912 ms
Transaction SYSTEM 12029-14 SQL COMMIT-WORK:
Transaction SYSTEM 12029-14 SQL done 83 ms
Transaction SYSTEM 12029-14 SQL Connection test
Transaction SYSTEM 12029-14 SQL done 1 ms
Transaction SYSTEM 12029-14 SQL INSERT: W7_LOG
(WHEN WHOREALNAME WHOLOGONNAME WHATVERB WHATNOUN WHATSUCCESS
WHERETYPE WHERENAME WHEREFROMTYPE WHEREFROMNAME WHERETOTYPE
WHERETONAME ONWHATTYPE ONWHATPATH ONWHATNAME INFO PERFDATA
PERFDELTA HOST PORT ...)
Transaction SYSTEM 12029-14 SQL done 2 ms
Transaction SYSTEM 12029-14 SQL Close output
Transaction SYSTEM 12029-14 SQL done 20 ms
Transaction SYSTEM 12029-14 SQL COMMIT-WORK:
Transaction SYSTEM 12029-14 SQL done 3 ms