Puede utilizar variables en la configuración para evitar
la grabación en el código fuente de valores que quizá no sean adecuados cuando la
configuración se reutiliza en distintos entornos.
Acerca de esta tarea
Las variables se pueden definir estableciendo una propiedad en
cualquiera de estos sitios:
- en el archivo de configuración de servidor o un archivo
incluido
- en el archivo bootstrap.properties
Las
siguientes variables predefinidas puede hacer referencia a:
Si se especifica la misma variable en varios lugares, la prioridad es la siguiente:
- Las variables en bootstrap.properties alteran temporalmente las variables de entorno de proceso
- Las variables en server.xml, o los archivos XML incluidos, alteran temporalmente las variables de bootstrap.properties y las variables de entorno de proceso
Procedimientos recomendados: Las variables que son específicas de un determinado servidor, por ejemplo, los números de puerto, se especifican en el archivo
bootstrap.properties, permitiendo que el archivo
server.xml se comparta entre varios servidores, mientras conserva
distintos valores en cada servidor. Las variables que se comparten entre un grupo de servidores, por ejemplo, la configuración de base de datos para un determinado host, es mejor especificarla en un archivo xml que se incluye en el archivo de configuración padre.
Procedimientos recomendados: Los nombres de variable deben empezar por un carácter alfabético y deben contener sólo los
siguientes caracteres: caracteres alfabéticos, caracteres numéricos, y los caracteres "_" y
".".
- Especificar una variable en un archivo de configuración.
La sintaxis de definición de variable es nombre_variable=valor. Si el valor contiene una vía de acceso, se normaliza durante el
proceso de la configuración sustituyendo las barras inclinadas e
invertidas repetidas con una sola barra inclinada, a menos que el
valor empiece con barras inclinadas o invertidas dobles, en cuyo caso
permanecen sin cambios.
Procedimientos recomendados: Si necesita establecer el valor de una variable para que contenga barras inclinadas repetidas, como a veces se utilizan para los URL de conexión de controladores JDBC, divida este valor en dos partes en las barras inclinadas dobles. Al colocar las barras inclinadas dobles en los caracteres iniciales se evitará la normalización. Por ejemplo, para almacenar el valor
"jdbc:db2://nombre_host.com", utilice dos variables:
URL_PART_1="jdbc:db2:"
URL_PART_2="//host_name.com"
Las variables definidas en los archivos de configuración van dirigidas a los elementos
de configuración que las utilizan. Por ejemplo, el fragmento de código siguiente crea una
variable denominada
updateTrigger_var que será utilizada por los
elementos de configuración de
applicationMonitor:
<applicationMonitor updateTrigger_var="mbean" />
Para crear una variable que se utiliza en una determinada entrada
de instancia de configuración (como una entrada de aplicación o de recurso), debe
especificar también el identificador de instancia. Por ejemplo: <httpEndpoint
id="defaultHttpEndpoint" HTTP_default_var="8889" />
- Especificar una variable en el archivo
bootstrap.properties.
Las variables definidas en el archivo
bootstrap.properties no van
dirigidas a ningún elemento de configuración particular. Las variables se especifican como parejas
clave-valor. Por ejemplo:
HTTP_default_var=8006
- Utilizar una variable definida en la configuración.
La sintaxis de sustitución de variable es
${variable_name}. Se pueden concatenar varios valores de variable especificando
${nombre_variable1}${nombre_variable2}. Por ejemplo, para
utilizar la variable
HTTP_default_var, añada el
fragmento de código
siguiente en el archivo de configuración:
<httpEndpoint id="defaultHttpEndpoint"
httpPort="${HTTP_default_var}">
</httpEndpoint>
- Utilice el elemento variable de la configuración
Puede utilizar el elemento
variable para definir una variable globalmente en la configuración del servidor. Si se ha definido la misma variable en un archivo included, quedará alterado temporalmente por la del archivo
server.xml.
Por ejemplo, utilice el elemento
variable, añada el siguiente fragmento de código al archivo de configuración:
<variable name="HTTP_default_var" value="8889" />
- Utilice variables de entorno de proceso en la configuración
Las variables de entorno de proceso están disponibles si
utiliza el prefijo de variable de configuración
env., por ejemplo:
<fileset dir="${env.LIBRARY_DIR}" includes="*.jar"/>
Si desea más información sobre cómo especificar variables de
entorno, consulte Personalizar el entorno Liberty.
- Utilice expresiones de variable en la configuración
Para las variables de configuración, puede utilizar una sintaxis de expresión de
variable limitada con el formato
${<operando><operador><operando>}.
La
descripción de la variable es la siguiente:
- operando
- Los operandos pueden ser literales de tipo entero largo o el nombre de una variable
que contiene un valor entero largo. Los nombres de variable deben empezar por un carácter
alfabético y deben contener sólo los siguientes caracteres: caracteres alfabéticos,
caracteres numéricos, y los caracteres "_" y ".".
- operador
- Los operadores disponibles son:
- + para añadir
- – para restar
- * para multiplicar
- / para dividir
- Si la expresión no puede analizarse, se utiliza un valor no entero o se produce un error
aritmético, el comportamiento no está definido.
Por ejemplo, si se define la variable HTTP_port_base, puede
utilizarse una expresión de variable para definir varios httpEndpoints:<httpEndpoint id="defaultHttpEndpoint" httpPort="${HTTP_port_base+0}"/>
<httpEndpoint id="httpEndpoint2" httpPort="${HTTP_port_base+1}"/>
- Alteración temporal de atributos heredables en la configuración
Puede alterar temporalmente los valores predeterminados de los atributos heredables en la configuración. Los
atributos heredables aparecen listados en la página
Características de Liberty. Puede identificar los
elementos dentro de los atributos heredados buscando el tipo
Inherits.
Por ejemplo, el atributo onError es uno de los atributos heredables. Puede definir globalmente un nombre de variable para el atributo onError, estableciéndolo en el archivo bootstrap.properties o en el archivo server.xml con un elemento variable. Si el mismo nombre de variable se especifica en ambos archivos, se utiliza el valor del archivo server.xml. Si el atributo no está establecido explícitamente en cualquiera de los dos archivos, utiliza el valor predeterminado. Si un valor no válido se establece en el atributo heredable, el valor del atributo vuelve a ser el del valor global definido en el archivo bootstrap.properties o server.xml o el valor predeterminado si no se ha definido a nivel global.
Otro ejemplo es el registro de propiedades en Liberty. Consulte Registro y rastreo.