Aplicación de los archivos de propiedades en varios entornos portables

Utilice la herramienta wsadmin para extraer un archivo de propiedades de una célula, modificar las variables específicas del entorno en el archivo de propiedades extraído y, a continuación, aplicar el archivo de propiedades modificado a otra célula. Modificar variables de entorno convierte en portable a un archivo de propiedades.

Antes de empezar

Si el archivo de propiedades que desea editar se creó antes de la Versión 7.0.0.7 del producto, examine el archivo de propiedades para ver si contiene un ID de XMI como el siguiente:

#
# SubSection 1.0 # Virtual Hosts
#
ResourceType=VirtualHost
ImplementingResourceType=VirtualHost
ResourceId=Cell=!{cellName}:VirtualHost=ID#VirtualHost_1
#
#Properties
#
name=default_host

EnvironmentVariablesSection
#Environment Variables
cellName=myNode04Cell

Un ID de XMI es un identificador exclusivo que genera un producto anterior a la Versión 7.0.0.7 cuando crea un objeto de configuración. Un ID de XMI puede ser diferente en otro entorno para el mismo objeto. En este ejemplo, un recurso VirtualHost para el host predeterminado de un entorno tiene un ID de XMI de VirtualHost_1. En otro entorno, el ID de XMI puede tener un valor diferente, como VirtualHost_2. Los archivos de propiedades que tienen identificadores de XMI no son portables. No se puede aplicar propiedades extraídas con identificadores XMI a otros entornos sin modificar antes los identificadores de recursos.

La misma sección de host virtual de un archivo de propiedades tiene identificadores de recursos portables similares a los siguientes:

#
# SubSection 1.0 # Virtual Hosts
#
ResourceType=VirtualHost
ImplementingResourceType=VirtualHost
ResourceId=Cell=!{cellName}:VirtualHost=default_host
#
#Properties
#
name=default_host

EnvironmentVariablesSection
#Environment Variables
cellName=myNode04Cell

En este ejemplo, name se utiliza como un atributo de clave para identificar el objeto VirtualHost de forma exclusiva dentro de un entorno. Un objeto puede tener más de un atributo de clave que lo identifique de forma exclusiva entre las distintas instancias del mismo tipo.

Acerca de esta tarea

Puede aplicar en otro entorno los archivos de propiedades que tengan identificadores de recursos portátiles.

Para extraer un archivo de propiedades de forma que tenga identificadores de recursos portátiles, utilice el mandato extractConfigProperties con la opción PortablePropertiesFile establecida en true. Los archivos de propiedades extraídos con esta opción son portátiles. Los archivos de propiedades extraídos no identifican cada recurso de forma exclusiva. Un identificador de recurso puede tener una o más parejas nombre-valor de atributo; por ejemplo, un atributo nodeName identifica un nodo y un atributo serverName identifica un servidor.

De forma predeterminada, un archivo de propiedades extraído no es portátil. Pero un archivo de propiedades extraído con la opción PortablePropertiesFile establecida en true es portátil.

Después de extraer un archivo de propiedades con la opción PortablePropertiesFile establecida en true, cambie EnvironmentVariablesSection en el archivo de propiedades, copie los archivos de propiedades en el entorno de destino y, a continuación, ejecute el mandato applyConfigProperties para aplicar el archivo de propiedades en otra célula.

También puede utilizar la modalidad interactiva con estos mandatos, como se muestra en la sintaxis siguiente:
AdminTask.nombre_mandato('-interactive')

Procedimiento

  1. Inicie la herramienta de scripts wsadmin.
    Para iniciar wsadmin utilizando el lenguaje Jython, ejecute el mandato siguiente desde el directorio bin del perfil del servidor:
    wsadmin -lang jython
  2. Extraiga un archivo de propiedades utilizando el mandato extractConfigProperties con la opción PortablePropertiesFile establecida en true.

    Por ejemplo, para extraer las propiedades de un servidor denominado server1 en el archivo server.props en un formato portátil, ejecute el mandato wsadmin siguiente:

    AdminTask.extractConfigProperties('[-propertiesFileName server.props -configData Server=server1 
    -options [[PortablePropertiesFile true]] ]')

    Si un archivo de propiedades hace referencia a un recurso de tipo Server, Node, Application, Cluster o AuthorizationGroup que no existe en el entorno de destino, puede establecer la opción GenerateTemplates en true:

    AdminTask.extractConfigProperties('[-propertiesFileName server.props -configData Server= 
    -options [[GenerateTemplates true][PortablePropertiesFile true]] ]')

    Cuando se utiliza la opción GenerateTemplates, el archivo de propiedades extraído tiene secciones de propiedades que soportan la creación de otro objeto del mismo tipo. De forma predeterminada, esta opción está inhabilitada.

  3. Opcional: Abra un editor en el archivo de propiedades extraído y examine los identificadores de recursos para asegurarse de que sean portátiles.

    Los identificadores portátiles no identifican cada recurso de forma exclusiva. En los ejemplos siguientes se muestran los identificadores portátiles en diversas subsecciones de archivos de propiedades.

    Ejemplo 1: Utilizar un nombre de atributo y un valor para un identificador de recursos

    En este ejemplo, jndiName es un identificador de recursos portátil que identifica un DataSource:

    #
    # SubSección 1.0.1.0 # Atributos de DataSource
    #
    Resou:rceType=DataSource
    ImplementingResourceType=JDBCProvider
    ResourceId=Cell=!{cellName}:Node=!{nodeName}:Server=!{serverName}:JDBCProvider=Derby JDBC
     Provider(XA):DataSource=jndiName#jdbc/DefaultEJBTimerDataSource
    Ejemplo 2: Utilizar varias parejas nombre-valor de atributo para un identificador de recursos

    En este ejemplo, los atributos nodeName y serverName juntos identifican el recurso coreGroupServer.

    #
    # SubSection 1.0.8.0 # CoreGroupServer Section
    #
    ResourceType=CoreGroupServer
    ImplementingResourceType=CoreGroup
    ResourceId=Cell=!{cellName}:CoreGroup=!{coreGroup}:CoreGroupServer=nodeName#myNode04,serverName#server1
    AttributeInfo=coreGroupServers
    Ejemplo 3: Identificador de recurso singleton

    En este ejemplo, sólo existe un objeto de seguridad en la célula. Dado que el objeto Security se considera un objeto singleton, no es necesario ningún atributo para identificar este recurso de forma exclusiva.

    #
    # SubSection 1.0 # Security Section
    #
    ResourceType=Security
    ImplementingResourceType=Security
    ResourceId=Cell=!{cellName}:Security=
    Avoid trouble Avoid trouble: Algunos recursos, como JDBCProvider y ThreadPool, se pueden crear con el mismo nombre varias veces. El valor del nombre es el atributo clave para estos objetos. No cree múltiples instancias de estos objetos con el mismo nombre bajo un ámbito determinado.gotcha
  4. Modifique el archivo de propiedades extraído según sea necesario.
    • Si el archivo de propiedades portátil extraído hace referencia a un recurso de tipo Server, Node, Application, Cluster o AuthorizationGroup que no existe en el otro entorno y el mandato extractConfigProperties se ha ejecutado con la opción GenerateTemplates establecida en true, edite el archivo de propiedades para habilitar la creación del recurso.

      La opción GenerateTemplates le permite crear otro servidor que sea similar a un servidor existente. Por ejemplo, cuando las propiedades del servidor se extraen utilizando esta opción, el archivo de propiedades extraído tiene una plantilla para crear otro servidor. De forma predeterminada, la sección de la plantilla se omite. Si establece SKIP=false y, a continuación, establece las propiedades necesarias para crear un nuevo objeto, el producto crea un objeto nuevo cuando se ejecuta el mandato applyConfigProperties y proporciona el archivo de propiedades modificado. Dado que las siguientes secciones contienen propiedades de configuración de un servidor existente y esas secciones se procesan cuando se ejecuta el mandato applyConfigProperties, el servidor nuevo que se crea tiene la misma configuración que el servidor antiguo del que se ha extraído el archivo de propiedades.

      Debe modificar la sección del entorno para reflejar el servidor nuevo que se crea, cambiando las variables nodeName, cellName y serverName.

      Esta opción genera una sección de propiedades de plantilla delante de cada sección de servidor, clúster, aplicación y grupo de autorización. De forma predeterminada, las secciones están inhabilitadas.

      Para cada objeto que no existe en el entorno de destino, edite la sección correspondiente a ese objeto. Inserte valores adecuados para las propiedades y elimine SKIP=true. Establezca variables específicas del entorno al final del archivo de propiedades que reflejen el nuevo entorno de destino.

    • No modifique ni suprima las propiedades que se utilizan como claves para identificar un objeto.

      Si modifica o suprime un atributo clave en un objeto, las secciones siguientes del archivo de propiedades no deben hacer referencia al objeto de nuevo. El recurso especificado en las secciones siguientes no se encontrará.

      Por ejemplo, examine las propiedades de host virtual en las secciones siguientes:

      ResourceType=VirtualHost
      ImplementingResourceType=VirtualHost
      ResourceId=Cell=!{cellName}:VirtualHost=admin_host
      #
      #Properties
      #
      name=admin_host #required
      #
      # SubSección 1.0.1 # Sección de MimeTypes
      #
      ResourceType=VirtualHost
      ImplementingResourceType=VirtualHost
      ResourceId=Cell=!{cellName}:VirtualHost=admin_host
      AttributeInfo=mimeTypes(type,extensions)

      Si name=admin_host se cambia por name=my_host, la sección de MimeTypes que tiene ResourceId==!{cellName}:VirtualHost=admin_host no podrá encontrar el recurso especificado por ResourceId ya que el nombre se ha cambiado en la sección anterior. De forma similar, si se suprime name=admin_host, la sección de MimeTypes no podrá encontrar el recurso especificado por ResourceId.

  5. Valide el archivo de propiedades.

    Ejecute el mandato validateConfigProperties. Consulte el tema sobre la validación de archivos de propiedades.

  6. Copie el archivo de propiedades portátil extraído en otro entorno.
  7. Si el archivo de propiedades portátil extraído hace referencia a un recurso de tipo Server, Node, Application, Cluster o AuthorizationGroup que no existe en el otro entorno y el mandato extractConfigProperties no se ha ejecutado con la opción GenerateTemplates establecida en true, cree el recurso en el otro entorno.

    Puesto que el archivo de propiedades se aplicaba originalmente a un entorno diferente, es posible que un identificador de recursos en el archivo de propiedades haga referencia a un recurso que no exista en el entorno de destino. Si un recurso de tipo Server, Node, Application, Cluster o AuthorizationGroup no existe en el entorno de destino y los archivos de propiedades no habilitan la creación del recurso, cree el recurso en el entorno de destino antes de aplicar las propiedades para ese recurso. Además, es posible que un atributo haga referencia a otro recurso. Asegúrese de que existan todos los recursos a los que se hace referencia y, si es necesario, cree los recursos de tipo Server, Node, Application, Cluster o AuthorizationGroup que falten.

  8. Aplique el archivo de propiedades portátil extraído en el otro entorno utilizando el mandato applyConfigProperties.

    Por ejemplo, para aplicar el archivo de propiedades server.props y generar un informe denominado rep.txt, ejecute el siguiente mandato wsadmin:

    AdminTask.applyConfigProperties('[-propertiesFileName server.props -reportFileName rep.txt]')

    Si un recurso especificado en el archivo de propiedades existe en el entorno de destino y el valor de la propiedad especificada en el archivo de propiedades es el mismo que el que ya está establecido en el entorno de destino, esa propiedad se omite o no se establece en el entorno de destino. El producto sólo aplica las propiedades que son distintas de las que están especificadas en el archivo de propiedades.

    Si un recurso que está especificado en el archivo de propiedades no existe en el entorno de destino, el producto crea un nuevo recurso y establece todas las propiedades para el recurso recién creado a partir de los valores para el recurso en el archivo de propiedades. El producto no crea recursos del tipo Server, Node, Application, Cluster o AuthorizationGroup a menos que el mandato extractConfigProperties se haya ejecutado con la opción GenerateTemplates establecida en true y el archivo de propiedades especifique uno o más recursos nuevos de estos tipos.

    Avoid trouble Avoid trouble: Si un atributo de un recurso del archivo de propiedades hace referencia a otro recurso que no existe en el entorno de destino, el mandato applyConfigProperties no creará el recurso. Por ejemplo, en el archivo de propiedades siguiente, coreGroupName es un atributo de un recurso HAManagerService y hace referencia a un recurso de grupo principal por nombre. Si el grupo principal llamado myCoreGroup no existe en el entorno de destino, la aplicación del archivo de propiedades utilizando el mandato applyConfigProperties no creará el recurso de grupo principal.
    #                                                                           
    # SubSection 1.0 # HAManagerService Section                                 
    #                                                                           
    ResourceType=HAManagerService                                               
    ImplementingResourceType=HAManagerService                                   
    ResourceId=Cell=!{cellName}:Node=!{nodeName}:Server=!{serverName}:HAMana    
    gerService=                                                                 
    AttributeInfo=hamanagerservice                                              
    #                                                                           
                                                                                
    #                                                                           
    #Properties
    #                                                                           
    isAlivePeriodSec=120 #integer,required,default(120)                         
    transportBufferSize=10 #integer,required,default(1)                         
    enable=true #boolean,default(false)
    context=null
    activateEnabled=true #boolean,default(false)                                
    description=Template version of HAManager service. coreGroupName=myCoreGroup
    gotcha

Resultados

El archivo de propiedades aplicado actualiza el entorno de destino.

Qué hacer a continuación

Guarde los cambios en la configuración.


Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=txml_portable_prop
File name: txml_portable_prop.html