© 2011-2012 Depto. Ciencia de la Computación e IA
Especialista Universitario Java Enterprise
Servidores de aplicaciones
• Administración de recursos en
WebLogic
2
Especialista Universitario Java Enterprise
Servidores de Aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA
• Uso general de la consola.
• Administración de un dominio WebLogic.
• Despliegues.
• Orígenes de datos.
• Mensajería JMS.
Índice
2
3
Especialista Universitario Java Enterprise
Servidores de Aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA WebLogic
Uso general de la consola
3
4
Especialista Universitario Java Enterprise
Servidores de Aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA
Estados de un servidor
4
• Control de los servidores desde la consola
• Si un servidor no consigue arrancar correctamente, pasa a estado
FAILED.
• El Node Manager intentará reiniciarlo (estado FAILED_STARTING),
pero si no es posible acabará en (FAILED_NOT_RESTARTABLE).
5
Especialista Universitario Java Enterprise
Servidores de Aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA
Estados de un servidor
5
6
Especialista Universitario Java Enterprise
Servidores de Aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA
Cachés distribuidas / Coherence
6
JPA:
• Caché de primer nivel (reduce el número de sentencias SQL,
dentro de una sesión).
• Caché de segundo nivel (almacena registros de forma compartida
entre todas las sesiones reduciendo notablemente los accesos a
base de datos).
• Permite compartir información entre nodos (replicada o
distribuida).
• Consultas en paralelo.
• Las cachés implementan la interfaz Mapa (DistributedMap).
7
Especialista Universitario Java Enterprise
Servidores de Aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA
Cachés distribuidas / Coherence
7
8
Especialista Universitario Java Enterprise
Servidores de Aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA
Descriptores de despliegue específicos
8
• Extensiones sobre el
estándar JEE 5.
• Se pueden combinar
con anotaciones.
9
Especialista Universitario Java Enterprise
Servidores de Aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA
• Complementario a application.xml.
• Permite declarar
recursos globales a la
aplicación, (disponibles
para todos los módulos
del EAR).
weblogic-application.xml
9
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
<?xml version='1.0' encoding='UTF-8'?> <weblogic-application xmlns="http://xmlns.oracle.com/weblogic/weblogic-application" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-application http://xmlns.oracle.com/weblogic/weblogic-application/1.0/weblogic-application.xsd"> <ejb> <start-mdbs-with-application>false</start-mdbs-with-application> </ejb> <listener> <listener-class>es.ua.jtech.MiAppController </listener-class> <listener-uri>libreria.jar</listener-uri> </listener> <capacity> <name>Capacity1040</name> <count>1040</count> </capacity> <max-threads-constraint> <name>MaxThreads40</name> <count>40</count> </max-threads-constraint> <min-threads-constraint> <name>MinThreads10</name> <count>10</count> </min-threads-constraint> <work-manager> <name>TareaEspecifica</name> <max-threads-constraint-name>MaxThreads40</max-threads-constraint-name> <min-threads-constraint-name>MinThreads10</min-threads-constraint-name> <capacity-name>Capacity1040</capacity-name> </work-manager> <library-ref> <library-name>libExt</library-name> <specification-version>1.0</specification-version> <exact-match>true</exact-match> </library-ref> </weblogic-application>
10
Especialista Universitario Java Enterprise
Servidores de Aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA
• Complementario a web.xml.
• Permite configurar
propiedades de las
sesión HTTP,
mapear roles de
seguridad y declarar
recursos a nivel de
aplicación Web.
weblogic.xml
10
1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
<?xml version='1.0' encoding='UTF-8'?> <weblogic-web-app xmlns="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd"> <description>WebApp Descriptor</description> <session-descriptor> <timeout-secs>600</timeout-secs> <id-length>32</id-length> <tracking-enabled>true</tracking-enabled> <cookie-name>WebAppID</cookie-name> <url-rewriting-enabled>true</url-rewriting-enabled> </session-descriptor> <jsp-descriptor> <keepgenerated>false</keepgenerated> <package-prefix>servlet_jsp</package-prefix> <page-check-seconds>30</page-check-seconds> <verbose>true</verbose> <working-dir>./tmpjsps/miTemporal</working-dir> </jsp-descriptor> <container-descriptor> <session-monitoring-enabled>true</session-monitoring-enabled> <save-sessions-enabled>true</save-sessions-enabled> </container-descriptor> <context-root>miWeb</context-root> </weblogic-web-app>
11
Especialista Universitario Java Enterprise
Servidores de Aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA
• Asociar un gestor de trabajo a una aplicación Web.
weblogic.xml
11
1 <wl-dispatch-policy>TareaEspecifica</wl-dispatch-policy>
12
Especialista Universitario Java Enterprise
Servidores de Aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA
• Complementario a ejb-jar.xml.
• Permite declarar
propiedades
extendidas de los
EJB’s.
Weblogic-ejb.xml
12
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
<weblogic-ejb-jar xmlns="http://xmlns.oracle.com/weblogic/weblogic-ejb-jar" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-ejb-jar http://xmlns.oracle.com/weblogic/weblogic-ejb-jar/1.0/weblogic-ejb-jar.xsd"> <weblogic-enterprise-bean> <ejb-name>miEJB</ejb-name> <stateless-session-descriptor> <pool> <max-beans-in-free-pool>128</max-beans-in-free-pool> <initial-beans-in-free-pool>0</initial-beans-in-free-pool> </pool> </stateless-session-descriptor> <enable-call-by-reference>true</enable-call-by-reference> <jndi-name>jtech.miEJB</jndi-name> <dispatch-policy>TareaEspecifica</dispatch-policy> </weblogic-enterprise-bean> <weblogic-enterprise-bean> <ejb-name>miMDB</ejb-name> <message-driven-descriptor> <pool> <max-beans-in-free-pool>50</max-beans-in-free-pool> <initial-beans-in-free-pool>1</initial-beans-in-free-pool> </pool> <destination-jndi-name>jtech.miCola</destination-jndi-name> </message-driven-descriptor> <transaction-descriptor> <trans-timeout-seconds>300</trans-timeout-seconds> </transaction-descriptor> <jndi-name>jtech.miMDB</jndi-name> <dispatch-policy>TareaCola</dispatch-policy> </weblogic-enterprise-bean> </weblogic-ejb-jar>
13
Especialista Universitario Java Enterprise
Servidores de Aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA
La interfaz ApplicationLifecycleListener define los
métodos:
• preStart(ApplicationLifecycleEvent evt)
• postStart(ApplicationLifecycleEvent evt)
...
• preStop(ApplicationLifecycleEvent evt)
• postStop(ApplicationLifecycleEvent evt)
Ciclo de vida de las aplicaciones JEE
13
1 2 3 4 5
<listener> <listener-class>es.ua.jtech.MiAppController </listener-class> <listener-uri>libreria.jar</listener-uri> </listener>
14
Especialista Universitario Java Enterprise
Servidores de Aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA
• Son librerías desplegadas de forma independiente a las
aplicaciones que las utilicen.
• Reduce el consumo de memoria y fomenta la reutilización del
código.
• La librería compartida se define en el MANIFEST del JAR:
• Desde las aplicaciones, se referencian en el weblogic-
application.xml
Librerías compartidas (shared J2EE libraries)
14
Extension-Name: myExtension Specification-Version: 2.0 Implementation-Version: 9.0.0
1 2 3 4 5 6
<library-ref> <library-name>myExtension</library-name> <specification-version>2.0</specification-version> <exact-match>true</exact-match> </library-ref>
15
Especialista Universitario Java Enterprise
Servidores de Aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA
• Podemos tener varias versiones de una librería desplegadas
de forma simultánea.
• Desde un EAR podremos referenciar a JAR’s, WAR’s y EAR’s.
• Desde un WAR únicamente podremos referenciar a otros
WAR.
Librerías compartidas (shared J2EE libraries)
15
16
Especialista Universitario Java Enterprise
Servidores de Aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA
• Además de librerías podemos versionar aplicaciones
completas.
• Podemos tener hasta tres versiones de una aplicación, pero
únicamente una activa.
• La gran ventaja de este mecanismo es que permite actualizar
una aplicación en caliente, sin dejar de dar servicio.
• La versión se define en el MANIFEST.MF
Versionado de aplicaciones
16
Manifest-Version: 1.0 Created-By: 1.4.1_05-b01 (Sun Microsystems Inc.) Weblogic-Application-Version: v1
17
Especialista Universitario Java Enterprise
Servidores de Aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA
• Conjunto de conexiones
y Orígen de datos se
crean de forma
simultánea.
Orígenes de datos
17
18
Especialista Universitario Java Enterprise
Servidores de Aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA
Recursos necesarios:
• Almacenes persistentes (archivos o BBDD). Por defecto se
usa un almacén interno.
• Servidor JMS, es el «middleware orientado a mensajes» de
WebLogic.
• Módulos JMS, son agrupaciones de recursos para ser
gestionados de forma unificada. Estos recursos pueden ser:
• Cuotas.
• Plantillas.
• Colas/Tópicos
Mensajería JMS
18
19
Especialista Universitario Java Enterprise
Servidores de Aplicaciones © 2011-2012 Depto. Ciencia de la Computación e IA WebLogic
¿Preguntas?
19