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
- 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
- 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.
- 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: 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
- 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.
- Valide el archivo de propiedades.
Ejecute el mandato validateConfigProperties. Consulte el tema
sobre la validación de archivos de propiedades.
- Copie el archivo de propiedades portátil extraído en otro
entorno.
- 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.
- 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: 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.