Sugerencias de rendimiento para la herramienta wsadmin
Siga estas sugerencias para obtener el mejor rendimiento de la herramienta wsadmin.
Las sugerencias de rendimiento siguientes son para la herramienta wsadmin:
Si el gestor de despliegue se ejecuta en un nivel de mantenimiento de servicio superior al del agente de nodo, debe ejecutar wsadmin.sh o wsadmin.bat desde el directorio bin del gestor de despliegue.
- Cuando ejecuta un script utilizando la herramienta wsadmin, se crea un nuevo proceso con una
nueva API de JVM (Máquina virtual Java). Si utiliza scripts
con varios mandatos wsadmin -c de un archivo de proceso por lotes o un
script del shell, se ejecutarán más lento que si utiliza un solo mandato wsadmin -f.
La opción -f se ejecuta más rápido porque sólo se crea un proceso y una API de JVM
para instalación y las clases Java de la instalación sólo se cargan una vez.
En el ejemplo siguiente se muestra la ejecución de varios mandatos de instalación de aplicaciones desde un archivo de proceso por lotes.
Nota: En un sistema operativo Unix, si invoca un mandato que incluye un carácter de símbolo del dólar ($) mediante la opción wsadmin -c, la línea de mandatos intenta sustituir una variable. Para evitar este problema, añada una barra inclinada invertida antes del carácter de signo de dólar (\). Por ejemplo: wsadmin -c "\$AdminApp install ...".Utilizando Jacl:
wsadmin -c "$AdminApp install c:/myApps/App1.ear {-appname appl1}" wsadmin -c "$AdminApp install c:/myApps/App2.ear {-appname appl2}" wsadmin -c "$AdminApp install c:/myApps/App3.ear {-appname appl3}"
Utilizando Jacl:
o bienwsadmin.sh -c "\$AdminApp install /myApps/App1.ear {-appname appl1}" wsadmin.sh -c "\$AdminApp install /myApps/App2.ear {-appname appl2}" wsadmin.sh -c "\$AdminApp install /myApps/App3.ear {-appname appl3}"
wsadmin.sh -c "$AdminApp install /myApps/App1.ear {-appname appl1}" wsadmin.sh -c "$AdminApp install /myApps/App2.ear {-appname appl2}" wsadmin.sh -c "$AdminApp install /myApps/App3.ear {-appname appl3}"
Utilizando Jacl:
wsadmin -c "$AdminApp install /home/myDir/myApps/App1.ear {-appname appl1}" wsadmin -c "$AdminApp install /home/myDir/myApps/App2.ear {-appname appl2}" wsadmin -c "$AdminApp install /home/myDir/myApps/App3.ear {-appname appl3}"
Utilizando Jython:
wsadmin -lang jython -c "AdminApp.install('c:/myApps/App1.ear', '[-appname appl1]')" wsadmin -lang jython -c "AdminApp.install('c:/myApps/App2.ear', '[-appname appl2]')" wsadmin -lang jython -c "AdminApp.install('c:/myApps/App3.ear', '[-appname appl3]')"
Utilizando Jython:
o bienwsadmin.sh -lang jython -c "\AdminApp.install('/myApps/App1.ear', '[-appname appl1]')" wsadmin.sh -lang jython -c "\AdminApp.install('/myApps/App2.ear', '[-appname appl2]')" wsadmin.sh -lang jython -c "\AdminApp.install('/myApps/App3.ear', '[-appname appl3]')"
wsadmin.sh -lang jython -c "AdminApp.install('/myApps/App1.ear', '[-appname appl1]')" wsadmin.sh -lang jython -c "AdminApp.install('/myApps/App2.ear', '[-appname appl2]')" wsadmin.sh -lang jython -c "AdminApp.install('/myApps/App3.ear', '[-appname appl3]')"
Utilizando Jython:
wsadmin -lang jython -c "AdminApp.install('/home/myDir/myApps/App1.ear', '[-appname appl1]')" wsadmin -lang jython -c "AdminApp.install('/home/myDir/myApps/App2.ear', '[-appname appl2]')" wsadmin -lang jython -c "AdminApp.install('/home/myDir/myApps/App3.ear', '[-appname appl3]')"
O bien, por ejemplo, utilizando Jacl, puede crear el archivo appinst.jacl que contiene los mandatos:
$AdminApp install c:/myApps/App1.ear {-appname appl1} $AdminApp install c:/myApps/App2.ear {-appname appl2} $AdminApp install c:/myApps/App3.ear {-appname appl3}
$AdminApp install /myApps/App1.ear {-appname appl1} $AdminApp install /myApps/App2.ear {-appname appl2} $AdminApp install /myApps/App3.ear {-appname appl3}
$AdminApp install /home/myDir/myApps/App1.ear {-appname appl1} $AdminApp install /home/myDir/myApps/App2.ear {-appname appl2} $AdminApp install /home/myDir/myApps/App3.ear {-appname appl3}
Invoque este archivo con el siguiente mandato: wsadmin -f appinst.jacl
O bien, utilizando Jython, puede crear el archivo appinst.py que contiene los mandatos:
AdminApp.install('c:/myApps/App1.ear', '[-appname appl1]') AdminApp.install('c:/myApps/App2.ear', '[-appname appl2]') AdminApp.install('c:/myApps/App3.ear', '[-appname appl3]')
AdminApp.install('/myApps/App1.ear', '[-appname appl1]') AdminApp.install('/myApps/App2.ear', '[-appname appl2]') AdminApp.install('/myApps/App3.ear', '[-appname appl3]')
AdminApp.install('/home/myDir/myApps/App1.ear', '[-appname appl1]') AdminApp.install('/home/myDir/myApps/App2.ear', '[-appname appl2]') AdminApp.install('/home/myDir/myApps/App3.ear', '[-appname appl3]')
A continuación, invoque este archivo con el siguiente mandato: wsadmin -lang jython -f appinst.py.
A continuación, invoque este archivo con el siguiente mandato: wsadmin.sh -lang jython -f appinst.py.
- Utilice los mandatos AdminControl queryNames y completeObjectName con
atención con instalaciones de larga duración. Por ejemplo, si sólo hay unos pocos beans en
una sola máquina, el mandato $AdminControl queryNames * se ejecutará bien.
Si un cliente de scripts se conecta con el gestor de despliegue en un entorno de varias máquinas, utilice el mandato sólo si es necesario que el script obtenga una lista de todos los MBeans del sistema. Si necesita los MBeans en un nodo, será más sencillo invocar "$AdminControl queryNames node=mynode,*". La infraestructura de gestión de sistemas JMX envía solicitudes al sistema para satisfacer la primera consulta, *. La segunda consulta, node=mynode,* se orienta a una máquina específica.
- WebSphere Application Server es un sistema distribuido y los scripts se ejecutan mejor si minimiza las solicitudes remotas. Si es necesaria alguna acción o interrogación en varios elementos, por ejemplo, servidores, es más eficaz obtener la lista de elementos una vez e iterar localmente. Este procedimiento se aplica a las acciones que el objeto AdminControl realiza al ejecutar MBeans y acciones que el objeto AdminConfig realiza en objetos de configuración.