Aller au contenu

    W7 Logs sous Planisware 5

    Sommaire

    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 = ‘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