Vous pouvez utiliser des variables dans la configuration pour éviter de coder en dur les valeurs qui risquent de ne pas convenir si cette configuration est réutilisée dans un autre environnement.
Pourquoi et quand exécuter cette tâche
Vous pouvez définir des variables à l'aide de propriétés que vous placez
dans l'un des endroits suivants :
- Dans le fichier de configuration du serveur (fichier principal) ou dans un fichier inclus par celui-ci
- Dans le fichier bootstrap.properties
Les variables prédéfinies suivantes peuvent être référencées :
Si la même variable est spécifiée
à plusieurs endroits, la priorité appliquée est la suivante :
- les variables du fichier bootstrap.properties sont prioritaires sur les variables d'environnement de processus
- les variables du fichier server.xml, ou qui sont incluses dans des fichiers XML, sont prioritaires
sur les variables du fichier bootstrap.properties et les variables d'environnement de processus
Pratiques recommandées : Les variables spécifiques à chaque serveur, par exemple les numéros
de port, sont généralement définies dans le fichier
bootstrap.properties, ce qui permet de partager
un même fichier server.xml entre différents
serveurs tout en préservant les données spécifiques de chaque
serveur. Les variables
communes à un groupe de serveurs, par exemple une configuration de base de données pour un
hôte particulier, seront spécifiées de préférence dans un fichier .xml à part, qui sera inclus par une référence
dans le fichier de configuration parent.
Pratiques recommandées : Les noms de variable doivent commencer par un caractère alphabétique
et contenir uniquement les caractères suivants : caractères
alphabétiques, caractères numériques et les caractères "_" et "."
.
- Spécifier une variable dans un fichier de configuration.
La syntaxe de définition de variable est nom_variable=valeur. Si la valeur contient un chemin, celui-ci est normalisé lors du traitement de la configuration. En effet, les
barres obliques et les barres obliques inverses répétées sont remplacées par une barre oblique unique, sauf si la valeur commence par deux barres obliques ou deux barres obliques inverses,
auquel cas elle restent inchangées.
Pratiques recommandées : Si vous devez définir la valeur d'une variable
pour qu'elle contienne des barres obliques répétées, parfois utilisées pour les URL de connexion
aux pilotes JDBC, scindez la valeur en deux au niveau des deux barres obliques. En plaçant
les deux barres obliques comme caractères de début, vous évitez la normalisation. Ainsi,
pour stocker la valeur
"jdbc:db2://nom_hôte.com", utilisez deux variables :
URL_PART_1="jdbc:db2:"
URL_PART_2="//host_name.com"
Les variables définies dans les fichiers de configuration ont une
portée limitée aux éléments de configuration qui les utilisent. Par
exemple, le fragment de code suivant crée une variable nommée
updateTrigger_var, à utiliser dans les éléments de
configuration
applicationMonitor :
<applicationMonitor updateTrigger_var="mbean" />
Pour
créer une variable à utiliser dans une instance de configuration particulière
(telle qu'une entrée d'application ou de ressource), vous devez également spécifier
l'identificateur de l'instance. Par exemple :<httpEndpoint id="defaultHttpEndpoint"
HTTP_default_var="8889" />
- Spécifier une variable dans le fichier bootstrap.properties.
Les variables définies dans le fichier
bootstrap.properties ne sont pas limitées à des
éléments de configuration particuliers. Vous les entrez sous forme
de paires clé-valeur. Exemple :
HTTP_default_var=8006
- Utiliser une variable définie dans la configuration.
La substitution de variable emploie une syntaxe de la
forme
${nom_variable}. Il est possible de concaténer plusieurs valeurs de variable en indiquant
${nom_variable1}${nom_variable2}. Par exemple, pour utiliser la variable
HTTP_default_var,
ajoutez le fragment de code suivant au fichier de configuration :
<httpEndpoint id="defaultHttpEndpoint"
httpPort="${HTTP_default_var}">
</httpEndpoint>
- Utiliser l'élément variable dans la configuration
Vous pouvez
utiliser l'élément
variable pour définir une variable globale, c'est-à-dire dont la portée
s'étend à l'ensemble de la configuration du serveur. Si la
même variable est définie dans un fichier inclus, elle est supplantée par
celle qui figure dans le fichier
server.xml.
Par exemple, pour utiliser l'élément
variable,
ajoutez le fragment de code suivant au fichier de configuration :
<variable name="HTTP_default_var" value="8889" />
- Utilisez des variables d'environnement de processus dans la configuration
Les variables d'environnement de processus sont disponible si vous utilisez le préfixe de la variable de configuration env. , par exemple :
<fileset dir="${env.LIBRARY_DIR}" includes="*.jar"/>
Pour en savoir plus sur la spécification des variables d'environnement, voir Personnalisation de l'environnement Liberty.
- Utilisez des expressions de variable dans la configuration
Pour les variables de configuration, vous pouvez utiliser une
syntaxe d'expression de variable de configuration limitée au format
${<operand><operator><operand>}.
La
description de la variable est comme suit :
- operand
- Les opérandes peuvent être des littéraux entiers
longs ou le nom d'une
variable contenant une valeur entière longue. Les noms de
variable doivent commencer par un caractère alphabétique et contenir uniquement
les caractères suivants : caractères alphabétiques,
caractères numériques et les caractères "_" et "." .
- operator
- Les opérateurs disponibles sont les suivants :
- + pour l'addition
- - pour la soustraction
- * pour la multiplication
- / pour la division
- Si l'expression ne peut pas être analysée, une valeur non entière
est utilisée, ou bien une erreur arithmétique se produit et le
comportement est indéfini.
Par exemple, si la variable
HTTP_port_base
est définie, une expression de variable peut être utilisée pour
définir plusieurs httpEndpoints :<httpEndpoint id="defaultHttpEndpoint" httpPort="${HTTP_port_base+0}"/>
<httpEndpoint id="httpEndpoint2" httpPort="${HTTP_port_base+1}"/>
- Passer outre les attributs héritables dans la
configuration
Vous pouvez remplacer les valeurs par défaut des attributs héritables
dans la configuration. Les attributs héritables sont répertoriés sur la page Fonctions Liberty. Vous pouvez identifier les éléments avec les attributs hérités en recherchant
le type Inherits.
Par exemple, l'attribut onError est
l'un des attributs héritables. Vous pouvez définir globalement un nom de variable
pour l'attribut onError en le spécifiant soit dans
le fichier bootstrap.properties, soit dans le fichier server.xml
avec un élément variable. Si le même nom de variable est spécifié dans
les deux fichiers, la valeur utilisée est celle du fichier server.xml. Si l'attribut n'est défini explicitement dans aucun des deux fichiers,
sa valeur par défaut est utilisée. Si une valeur non valide est affectée à l'attribut
héritable, celui-ci prend la valeur globale définie dans
le fichier bootstrap.properties ou server.xml ou
la valeur par défaut si aucune valeur n'est explicitement définie au niveau global.
Autre exemple : la journalisation des propriétés dans Liberty. Voir Journalisation et Trace.