Utilización de variables en los archivos de configuración

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
Práctica recomendada: Las variables que son específicas de un servidor determinado, por ejemplo, los números de puerto, se especifican en el archivo bootstrap.properties , lo que permite que server.xml se comparta entre varios servidores mientras mantiene estos valores diferentes 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.
Práctica recomendada: Los nombres de variable deben empezar por un carácter alfabético y deben contener únicamente los siguientes caracteres: caracteres alfabéticos, caracteres numéricos y los caracteres "_" y "." :NONE.

Procedimiento

  • 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.

    Práctica recomendada: 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 del controlador JDBC , divida el 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://host_name.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" />
  • Especifique 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 ${variable_name1}${variable_name2}. 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 en 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"/>

    Para obtener más información sobre la especificación de variables de entorno, consulte Personalización del entorno de Liberty.

  • Utilice las variables de lista en la configuración.
    Normalmente las variables no pueden expresar una lista de valores separados por comas para su uso en un atributo de configuración de varios valores. Las variables que contienen comas se interpretan como una única serie en lugar de valores múltiples. Es posible interpretar una variable como una lista de valores separados por comas especificando el nombre de variable con ${list(...)}. Por ejemplo:
    <variable name="ports" value="80,9080"/>
    

    ${ports} se interpreta como la serie "80, 9080".

    ${list(ports)} se interpreta como una colección que contiene las series "80" y "9080".

  • 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 ${<operand><operator><operand>}. 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 ".". :NONE.
    operador
    Los operadores disponibles son:
    • + para añadir
    • - para resta
    • * 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 se listan 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 logging properties en Liberty.