Configuración de bibliotecas compartidas utilizando scripts
Puede utilizar scripts si desea configurar una biblioteca compartida para servidores de aplicaciones. Las bibliotecas compartidas son archivos utilizados por varias aplicaciones. Cree una biblioteca compartida para reducir el número de archivos duplicados de biblioteca en el sistema.
Antes de empezar
Existen dos procedimientos para realizar esta tarea. El ejemplo de este tema utiliza el objeto AdminConfig para crear y configurar una biblioteca compartida. De manera alternativa, puede utilizar el script createSharedLibrary en la biblioteca de scripts AdminResources para configurar bibliotecas compartidas.
La biblioteca de scripts proporciona un conjunto de procedimientos para automatizar las funciones de administración más comunes. Puede ejecutar cada procedimiento de script de forma individual, o combinar varios procedimientos para desarrollar rápidamente nuevos scripts.
Procedimiento
- Inicie la herramienta de scripts wsadmin.
- Identifique el servidor y asígnelo a la variable server. Por
ejemplo:
Utilizando Jacl:
set serv [$AdminConfig getid /Cell:mycell/Node:mynode/Server:server1/]
- Utilizando Jython:
serv = AdminConfig.getid('/Cell:mycell/Node:mynode/Server:server1/') print serv
Tabla 1. Elementos del mandato getid. En la tabla siguiente se describe cada elemento del mandato getid. Elemento Descripción estableciendo es un mandato Jacl serv es un nombre de variable $ es un operador Jacl para sustituir un nombre de variable por su valor AdminConfig es un objeto que representa la configuración de WebSphere Application Server getid es un mandato AdminConfig Cell es un atributo micélula es el valor del atributo Node es un atributo mynode es el valor del atributo Server es un atributo server1 es el valor del atributo Salida de ejemplo:server1(cells/mycell/nodes/mynode/servers/server1|server.xml#Server_1)
- Cree la biblioteca compartida del servidor.
A continuación se muestran ejemplos de cómo crear la biblioteca compartida utilizando Jacl o Jython.
Utilizando Jacl:
$AdminConfig create Library $serv {{name mySharedLibrary} {classPath c:/mySharedLibraryClasspath}}
$AdminConfig create Library $serv {{name mySharedLibrary} {classPath /mySharedLibraryClasspath}}
$AdminConfig create Library $serv {{name mySharedLibrary} {classPath /home/myProfile/mySharedLibraryClasspath}}
Utilizando Jython:
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath', 'c:/mySharedLibraryClasspath']])
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath', '/mySharedLibraryClasspath']])
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath', 'home/myProfile/mySharedLibraryClasspath']])
Avoid trouble:
- Si está utilizando Jython, y la vía de acceso de clases no contiene ningún espacio, puede utilizar un punto y coma (;) o un espacio como separador. Por
ejemplo:
o bienAdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath','test1.jar;test2.jar;test3.jar']])
AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath','test1.jar test2.jar test3.jar']])
- Si está utilizando Jacl, y la classpath contiene uno o más espacios, debe añadir llaves o comillas adicionales alrededor de la classpath. Por
ejemplo:
o$AdminConfig create Library $serv {{name mySharedLibrary} {classPath {c:/Program Files/JDBC Driver/test.jar}}}
$AdminConfig create Library $serv {{name mySharedLibrary} {classPath "c:/Program Files/JDBC Driver/test.jar"}}
- Si está utilizando Jython, y la vía de acceso de clases contiene uno de más espacios, debe utilizar un punto y coma (;) como separador. Por
ejemplo:
o si sólo hay una vía de acceso:AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath','c:/Program Files/JDBC Driver/test.jar;a.jar']])
AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath','test1.jar test2.jar test3.jar']])
- Si está utilizando Jython, y la classpath contiene uno o más espacios, debe añadir llaves o comillas adicionales alrededor de la classpath. Por
ejemplo:
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], [['classPath', 'c:/Program Files/JDBC Driver/test.jar']]])
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], [['classPath', '/Program Files/JDBC Driver/test.jar']]])
o bienprint AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], [['classPath', 'home/myProfile/Program Files/JDBC Driver/test.jar']]])
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath', "'c:/Program Files/JDBC Driver/test.jar'"]])
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath', "'/Program Files/JDBC Driver/test.jar'"]])
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath', "'home/myProfile/Program Files/JDBC Driver/test.jar'"]])
- Cuando utilice Jython, si la classpath contiene más de una vía de acceso, puede utilizar cualquier sintaxis de lista, o sintaxis de series delimitadas por un signo de punto y coma para especificar varias vías de acceso.
Utilizando la sintaxis de lista:
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], [classPath [test1.jar test2.jar test3.jar]]]')
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath [test1.jar test2.jar test3.jar]]]')
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath [test1.jar test2.jar test3.jar]]]')
Utilizando la sintaxis de series delimitadas por un signo de punto y coma:
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], [classPath,'test1.jar;test2.jar;test3.jar']])
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], [classPath,'test1.jar;test2.jar;test3.jar']])
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], [classPath,'test1.jar;test2.jar;test3.jar']])
- Cuando utilice Jython, si la classpath contiene más de una vía de acceso, y una de lasclasspaths contienen uno o más espacios, encierre entre comillas la serie de vía de acceso que contiene los espacios. Por
ejemplo:
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], [classPath [test1.jar "C:/Program Files/JDBC Driver/test.jar" test3.jar]]]')
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath [test1.jar "C:/Program Files/JDBC Driver/test.jar" test3.jar]]]')
print AdminConfig.create('Library', serv, [['name', 'mySharedLibrary'], ['classPath [test1.jar "C:/Program Files/JDBC Driver/test.jar" test3.jar]]]')
Tabla 2. Elementos del mandato create Library. En la tabla siguiente se describe cada elemento del mandato create Library. Elemento Descripción $ es un operador Jacl para sustituir un nombre de variable por su valor AdminConfig es un objeto que representa la configuración de WebSphere Application Server crear es un mandato AdminConfig Biblioteca es un atributo serv evalúa el ID del servidor especificado en el paso 1 nombre es un atributo mySharedLibrary es un valor del atributo name classPath es un atributo /mySharedLibraryClasspath es el valor del atributo classpath print es un mandato Jython Resultado de ejemplo:MysharedLibrary(cells/mycell/nodes/mynode/servers/server1|libraries.xml#Library_1)
- Identifique el servidor de aplicaciones del servidor y asígnelo a la
variable appServer. Por
ejemplo:
Utilizando Jacl:
set appServer [$AdminConfig list ApplicationServer $serv]
- Utilizando Jython:
appServer = AdminConfig.list('ApplicationServer', serv) print appServer
Tabla 3. Elementos del mandato list. En la tabla siguiente se describe cada elemento del mandato create list. Elemento Descripción estableciendo es un mandato Jacl appServer es un nombre de variable $ es un operador Jacl para sustituir un nombre de variable por su valor AdminConfig es un objeto que representa la configuración de WebSphere Application Server list es un mandato AdminConfig ApplicationServer es un atributo serv evalúa el ID del servidor especificado en el paso 1 print es un mandato Jython Salida de ejemplo:server1(cells/mycell/nodes/mynode/servers/server1|server.xml#ApplicationServer_1
- Identifique el cargador de clases del servidor de aplicaciones y asígnelo a la variable
classLoader. Por
ejemplo:
- Para utilizar el cargador de clases existente que está asociado al servidor, los mandatos
siguientes utilizan el primer cargador de clases:
Utilizando Jacl:
set classLoad [$AdminConfig showAttribute $appServer classloaders] set classLoader1 [lindex $classLoad 0]
- Utilizando Jython:
classLoad = AdminConfig.showAttribute(appServer, 'classloaders') cleanClassLoaders = classLoad[1:len(classLoad)-1] classLoader1 = cleanClassLoaders.split(' ')[0]
Tabla 4. Elementos del mandato showAttribute. En la tabla siguiente se describe cada elemento del mandato showAttribute. Elemento Descripción estableciendo es un mandato Jacl classLoad, classLoader1 es un nombre de variable $ es un operador Jacl para sustituir un nombre de variable por su valor AdminConfig es un objeto que representa la configuración de WebSphere Application Server showAttribute es un mandato AdminConfig appServer evalúa el ID del servidor de aplicaciones especificado en el paso 3 cargadores de clases es un atributo print es un mandato Jython - Para crear un cargador de clases nuevo, emita el siguiente mandato:
Utilizando Jacl:
set classLoader1 [$AdminConfig create Classloader $appServer {{mode PARENT_FIRST}}]
- Utilizando Jython:
classLoader1 = AdminConfig.create('Classloader', appServer, [['mode', 'PARENT_FIRST']])
Tabla 5. Elementos del mandato create Classloader. En la tabla siguiente se describe cada elemento del mandato create Classloader. Elemento Descripción estableciendo es un mandato Jacl classLoader1 es un nombre de variable $ es un operador Jacl para sustituir un nombre de variable por su valor AdminConfig es un objeto que representa la configuración de WebSphere Application Server crear es un mandato AdminConfig Classloader es un atributo appServer evalúa el ID del servidor de aplicaciones especificado en el paso 3 mode es un atributo PARENT_FIRST es el valor del atributo print es un mandato Jython Salida de ejemplo:(cells/mycell/nodes/mynode/servers/server1|server.xml#Classloader_1)
- Para utilizar el cargador de clases existente que está asociado al servidor, los mandatos
siguientes utilizan el primer cargador de clases:
- Asocie la biblioteca compartida creada con el servidor de aplicaciones mediante el cargador de
clases. Por
ejemplo:
Utilizando Jacl:
$AdminConfig create LibraryRef $classLoader1 {{libraryName MyshareLibrary}}
- Utilizando Jython:
print AdminConfig.create('LibraryRef', classLoader1, [['libraryName', 'MyshareLibrary']])
Tabla 6. Elementos del mandato create LibraryRef. En la tabla siguiente se describen los elementos del mandato create LibraryRef. Elemento Descripción $ es un operador Jacl para sustituir un nombre de variable por su valor AdminConfig es un objeto que representa la configuración de WebSphere Application Server crear es un mandato AdminConfig LibraryRef es un atributo classLoader1 evalúa el ID del cargador de clases especificado en el paso 4 libraryName es un atributo MyshareLibrary es el valor del atributo print es un mandato Jython Salida de ejemplo:(cells/mycell/nodes/mynode/servers/server1|server.xml#LibraryRef_1)
- Guarde los cambios de configuración. Utilice el siguiente ejemplo de mandatos para guardar los cambios de configuración:
AdminConfig.save()
- Sincronice el nodo. Utilice los scripts syncActiveNode o syncNode en la biblioteca de scripts AdminNodeManagement para propagar los cambios en la configuración en un nodo o nodos.
- Utilice el script syncActiveNodes para propagar los cambios en todos los nodos de la célula, como se demuestra en el ejemplo siguiente:
AdminNodeManagement.syncActiveNodes()
- Utilice el script syncNode para propagar los cambios en un nodo específico, como se demuestra en el ejemplo siguiente:
AdminNodeManagement.syncNode("miNodo")
- Utilice el script syncActiveNodes para propagar los cambios en todos los nodos de la célula, como se demuestra en el ejemplo siguiente:


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=txml_library
File name: txml_library.html