Externalisation du paramétrage technique

Externalisation du paramétrage technique

Généralités

Introduction

Principes

Exploitation

Utilisation opérationnelle

Action de cinématique

Paramètres implémentés en ACE 1.3

Généralités

Introduction

Cette nouvelle fonctionnalité permet de piloter certains paramètres techniques de l’application. En corollaire, il sera possible d’activer ou de désactiver par ce biais certaines fonctionnalités lors de phases de développement.

Principes

Il n’existait auparavant que deux possibilités de piloter les paramètres techniques de l’application :

  • La ligne de commande de démarrage de l’application,
  • La définition de paramètres dans web.xml (descripteur XML J2EE du WebModule concerné).

En externalisant les paramètres techniques, il vous est aussi possible de :

  • Pouvoir positionner des « cheat codes » afin de piloter des particularités en cours de version (patch activable uniquement par ce moyen),
  • Modifier des paramètres dynamiquement sans redémarrer le serveur d’application.

Attention

La modification de ces paramètres ne peut se faire que sous le couvert du Groupe d’Expertise Technique. ACE déclinera toute responsabilité dans le cas contraire.

Les paramètres techniques sont décrits dans un fichier nommé « ACE.properties », situé à la racine physique des WebModule, au même niveau que le fichier de configuration. La présence de ce fichier est optionnelle.

Pour la première version, il s’agit d’un fichier texte contenant la liste des paramètres (code=valeur). Dans une version ultérieure d’ACE, il est prévu d’en faire un fichier XML de manière à classifier les paramètres par catégorie. Dans le même ordre d’idée, une console JMX du marché pourrait être exploitée pour modifier dynamiquement les paramètres.

Exploitation

Utilisation opérationnelle

La liste des paramètres est fournie par ACE exclusivement. Ces paramètres peuvent aussi bien piloter des actions au niveau du socle technique que du code métier.

A titre d’exemple (non significatif), le contenu du fichier pourrait ressembler à ceci :

fr.ACE.application.forcesupport=NAV/MIC

fr.ACE.abstractprocessus.rollback=true

fr.ACE.viewobject.garbage=true

fr.ACE.viewobject.remove=true

fr.ACE.configuration.validation=false

oracle.jbo.server.locktimeout=1

fr.ACE.gc=full

Action de cinématique

C’est une action définie par le socle, elle se trouve dans le package : « fr.ACE.technicalframework.application.action.PropertiesReload »

Elle provoque une demande de rechargement du fichier de propriétés pour l’ensemble de la JVM concernée.

Cette action doit être définie dans le fichier de configuration.

Exemple de cinématique : ?cinematic=properties_reload()

Paramètres implémentés en ACE 1.3

Support de présentation

CIBLE : DEVELOPPEMENT

Afin de faciliter les développements destinés à des supports de présentation inhabituels (NAV/PLM, NAV/NET par exemple), il est possible de demander à la Servlet de forcer le support. Cela permet de simplifier la phase de développement de pages destinées à un Pocket-PC par exemple.

Syntaxe : fr.ACE.application.forcesupport=NAV/MIC

Validation de la configuration

CIBLE : DEVELOPPEMENT

Le chargement d’un fichier XML nécessite la validation de celui-ci par son schéma (XSD). Cette phase est assez lourde en consommation CPU et peut être évitée lors des phases de développements, dès lors que le fichier de configuration est enregistré avec XDME ou XMLSpy (option de vérification par le schéma activée).

Syntaxe : fr.ACE.configuration.validation=false

Gestion des locks Oracle

CIBLE : PRODUCTION & PERFORMANCE

Le métier réalise parfois des demandes de lock, par exemple lors de la récupération d’une valeur de compteur (UT_CPT). Jusqu’en version ACE 1.2, les demandes de locks étaient réalisées pendant 60 secondes avant de rendre la main : select from update nowait ;

Dans le cas où une base Oracle est exploitée, il est possible de réaliser la demande de lock en précisant directement le temps de pause : select from update wait x ;

L’unité de temps est la seconde, ce type de demande a pour avantage de ne consommer aucune ressource sur le serveur d’application et sur le serveur de base de données.

Syntaxe pour 10 secondes : oracle.jbo.server.locktimeout=10