Work Manager en Weblogic

De Dos Ideas.
Saltar a: navegación, buscar

Un Work Manager en Weblogic permite, entre otras cosas, crear limitaciones para los hilos (threads) de aquellas aplicaciones que estén asociadas a él.

Configuración en Weblogic 10.x

El proceso consiste en crear por consola el Work Manager en si, y luego un componente especifico por cada limitación que quisiéramos activar.

El primer paso es ir a la consola del Weblogic --> Enviroment --> Work Managers --> New --> Work Manager. El nombre que elijamos luego lo utilizaremos en la aplicacion destino.

Luego debemos crear un componente por tipo de limitación que necesitamos.

Si por ejemplo queremos que se ejecuten como máximo dos hilos y otros dos queden encolados, creamos un Maximum Threads Constraint con valor dos y Capacity Constraint con valor 4.

Paso siguiente ingresamos en el Work Manager que creamos al comienzo, y le asignamos las limitaciones correspondientes. Recordar que al hacer este paso debemos reiniciar los servidores donde afecte dicha configuración.

Finalmente debemos decirle a nuestra aplicacion que utilice un Work Manager específico y no el default que provee Weblogic. Esto se configura en los descriptores de nuestra aplicación. En el caso de una aplicacion web, lo indicamos en el weblogic.xml:

<?xml version="1.0" encoding="UTF-8"?>

<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app">

 <context-root>/conexto-aplicacion</context-root>
 
 <wl-dispatch-policy>miWorkManager</wl-dispatch-policy>
 

</weblogic-web-app>

Configuración en aplicación

También es posible crear y configurar Work Managers en la aplicación, esto es mediante los descriptores de los respectivos módulos.

Modulo WEB

Creación del Work Manager, esto se especifica en el archivo weblogic.xml.

<?xml version="1.0" encoding="UTF-8"?> <wls:weblogic-web-app xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd"> <wls:weblogic-version>10.3.2</wls:weblogic-version>

 <wls:context-root>/workmanager-demo-web</wls:context-root>
   <wls:work-manager>
     <wls:name>WorkManagerdemo_web</wls:name>
     <wls:max-threads-constraint>
       <wls:name>5MaxThreads</wls:name>
       <wls:count>5</wls:count>
     </wls:max-threads-constraint>
     <wls:capacity>
       <wls:name>7MaxCapacity</wls:name>
       <wls:count>7</wls:count>
     </wls:capacity>
 </wls:work-manager>

</wls:weblogic-web-app>

Ahora hay que relacionar los servlet con el Work Manager, esto se especifica en el archivo web.xml.

<servlet>

 <servlet-name>WorkManagerServlet</servlet-name>
 <servlet-class>com.dosideas.controller.WorkManagerServlet</servlet-class>
 <init-param>
   <param-name>wl-dispatch-policy</param-name>
   <param-value>WorkManagerdemo_web</param-value>
 </init-param>

</servlet>

Modulo EJB