"Nada es, todo fluye" ... como afirmó el filósofo griego Heráclito en el siglo V antes de nuestra era. Por lo tanto, prepárate para el cambio.
sábado, 12 de abril de 2008
viernes, 21 de marzo de 2008
JMX (Java Management Extensions) en WLS 8.1
Especifica estándares para automatizar la administración de dispositivos usando Java como lenguajes de control.
Desacopla la gestión de dispositivo de las herramientas de gestión.
El vendedor del dispositivo desarrolla “Management Beans” (MBeans) con su dispositivo. Asi los clientes pueden automatizar la gestión de dispositivos.
Un MBean es una construcción JMX que representa un recurso manejado. Cada recurso manejado en WLS usa MBeans para proporcionar una interfaz para monitorizar o modificar el recurso.
WLS MBeans suministra todas las operaciones estándar definidas en la especificación JMX, como:
- Constructores para instancias MBeans.
- Métodos para obtener y establecer los atributos de MBeans.
- Métodos para realizar operaciones adicionales especificas de MBeans.
- Notificaciones para eventos broadcast MBean.
- Aplicaciones (Web, EJB,...)
- Seguridad.
- Dominios, servidores, cluster.
- Logs
- Servicios (JDBC, JMS, SNMP, XML)
Las herramientas de gestión WLS están implementadas en JMX:
- Consola de administración.
- Comando weblogic.Admin
- Comando weblogic.Deployer
- Herramientas de terceros
El Tipo de un MBean, es el nombre de la interfaz sin el sufijo MBean.
El Nombre de un MBean esta disponible cuando seleccionas el objeto de la consola (mira el atributo “Name”) o usando el comado weblogic.Admin GET –type tipo
Los Atributos en un MBean, revisa los métodos de acceso y elimina el prefijo “set” o “get”, o usa el comando weblogic.Admin GET
Sintaxis:
java weblogic.Admin [-url URL] [{-username username [-password password] } | {[-userconfigfile configfile] [-userkeyfile adminkey] } ] COMANDO argumentos
CONNECT – Hace el numero especificado de conexiones a WLS y devuelve el tiempo empleado.
FORCESHUTDOWN – Termina inmediatamente un proceso WLS.
GETSTATE – Devuelve el estado actual de WLS.
HELP – Proporciona ayuda de la sintaxis y uso de los comandos.
LICENSES – Lista las licencias para todas las instancias de WLS instaladas en un servidor especifico.
LIST – Lista los nodos del arbol JNDI.
MIGRATE – Migra un servicio JMS o JTA a un servidor objetivo del cluster.
PING – Envia un mensaje para comprobar que WLS esta escuchando en un puerto.
RESUME – Cambia al servidor de estado STANBY a RUNNING.
SERVERLOG – Muestra el fichero de log de un servidor especifico.
SHUTDOWN – Para un servidor.
Ejemplos:
java weblogic.Admin -url waswas.tsm.inet:30660 -username system -password T1f0n FORCESHUTDOWN MiServidor3
java weblogic.Admin HELP PING
java weblogic.Admin -url ManagedHost:8001 -username weblogic -password weblogic THREAD_DUMP
Gestión de MBeans
CREATE – Crea un MBean de administración. Devuelve OK si tiene éxito.
DELETE – Borra un MBean. Devuelve OK a la salida estandar si tiene éxito.
GET – Muestra las propiedades de un MBean.
INVOKE – Invoca operaciones de gestión en MBean.
SET – Establece el valor a la propiedad especificada del MBean.
Todos los comandos de gestión de MBeans pueden aceptar el argumento –type, que opera sobre todos los MBeans del tipo especificado de la instancia.
java weblogic.Admin -username weblogic -password weblogic GET -type ServerRuntime -property State
Principales parámetros a monitorizar con JMX
ServerRuntime
- State, OpenSocketsCurrentCount
- ExecuteThreadCurrentIdleCount, PendingRequestCurrentCount.
- HeapSizeCurrent
- ActiveConnectionsCurrentCount, ConnectionsHighCount, LeakedConnectionCount, ConnectionDelayTime, FailuresToReconnect
La utilidad weblogic.Deployer es una utilidad java que nos permite realizar tareas de despliegue.
Te permite desplegar una nueva aplicación, actualizar una aplicación existente, o undeploy una aplicación.
Para usar weblogic.Deployer:
- Establece tu entorno, para que las clases de WLS estén en tu classpath y JDK. Puedes usar del script setenv para establecer el classpath.
java weblogic.Deployer [ opciones ] [-deploy | -undeploy | -redeploy | -start | -stop | -listapps] [file (s)]
Desplegar una nueva aplicación:
java weblogic.Deployer –adminurl http://admin:7001 –name vflive –source /tmp/vflive.ear –targets server1,server2 –deploy
Redesplegar una aplicación:
java weblogic.Deployer –adminurl http://admin:7001 –name vflive –redeploy
Mas información
jueves, 20 de marzo de 2008
Configura tus Network Channels en WebLogic Server 8.1
Para lo cual puedes especificar
Para lo cual puedes desde la consola Administrativa crearlo en Servers>Protocols>Channels o empleando el MBean NetworkAccessPoint directamente en el fichero de config.xml, si te sucede como nos sucedió en una ocasión en la cual no podíamos acceder a la consola administrativa de WLS 8.1 gracias a una “maravillosa” regla en un Firewall.
Para lo cual, lo que hicimos fue meter en el config.xml una línea como la siguiente:
Después de añadir esta línea en el config.xml, simplemente habría que reiniciar el servidor administrativo y ya estaría todo…. Mas fácil imposible ¡!!
Este articulillo me gustaría ofrecérselo a un administrador de weblogic que sostenía que esto de los Network Channels no existia y que eran “invenciones” mías, y dedicárselo a mi joven Padawan Pablo Yuste el cual creyó en mis enseñanzas y las defendió creyendo en mi palabra.
lunes, 4 de febrero de 2008
Tuning Java Virtual Machines (JVMs): Java Heap
En el Heap podemos distinguir 3 zonas:
- New o Young Generation: Los objetos inicialmente se situan aqui
From Space = (NewSize – Eden / 2)
To Space = (NewSize – Eden) / 2)
-XX:NewSize
-XX:MaxNewSize
-XX:NewRatio
-XX:SurvivorRatio
- Old o Tenured Generation: Aqui encontraremos objetos con larga vida
- Permanet Generation: Almacena clases de objetos
-XX:MaxPermSize
La recolección de basura se produce en cada generación cuando ésta se llena. Los objetos se sitúan en el edén y, debido a la mortalidad infantil, la mayoría muere ahí. Cuando el edén se llena se produce una recolección menor en la que algunos objetos supervivientes se mueven a una generación más vieja. Cuando las generaciones viejas se llenan se produce una recolección mayor que, generalmente, es mucho más lenta debido a que involucra a todos los objetos vivos.
Cuanto más tiempo sobreviva un objeto, más recolecciones pasarán sobre él, y el recolector de basura se volverá más lento. La recolección de basura será más eficiente haciendo que los objetos no sobrevivan a la primera recolección. Las aplicaciones pueden trastornar esta situación ideal con distribuciones de tiempo de vida inusuales o con generaciones de tamaño pequeño que causan recolecciones con demasiada frecuencia.
Existen varias técnicas para desarrollar Garbage Collection. Las más utilizadas son marcar y barrer (mark-and-sweep) y recolección por copia (copying collection).