Configuracion Independiente en las Memorias de los Servidores de un Dominio SOA, BAM, OSB

El siguiente articulo describe como poder configurar de manera independiente la cantidad de memoria RAM con que inician los distintos servidores que se tienen en un dominio. Por default los archivos de configuracion parametrizan este valor para que todos los servidores los respeten pero en algunas ocasiones hay que configurarlos independientemente.

Los archivos que se utilizan para levantar los servidores se encuentran en la siguiente direccion:

 %DOMAIN_HOME%\bin

 En el ejemplo: \FusionMiddleware\user_projects\domains\OBAY_domain\bin

El primer archivo a revisar es el startWebLogic.cmd con el cual se inicia el AdminServer. Revisando el archivo podemos notar que se inicializa la memoria en la siguiente seccion:

@REM START WEBLOGIC

echo starting weblogic with Java version:

%JAVA_HOME%\bin\java %JAVA_VM% -version

if "%WLS_REDIRECT_LOG%"=="" (
        echo Starting WLS with line:
 
   echo %JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% -Dweblogic.Name=%SERVER_NAME% -Djava.security.policy=%WL_HOME%\server\lib\weblogic.policy
   %JAVA_OPTIONS% %PROXY_SETTINGS% %SERVER_CLASS%

   %JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% -Dweblogic.Name=%SERVER_NAME% -Djava.security.policy=%WL_HOME%\server\lib\weblogic.policy
   %JAVA_OPTIONS% %PROXY_SETTINGS% %SERVER_CLASS%

   ) else (

   echo Redirecting output from WLS window to %WLS_REDIRECT_LOG%

   %JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% -Dweblogic.Name=%SERVER_NAME% -Djava.security.policy=%WL_HOME%\server\lib\weblogic.policy
   %JAVA_OPTIONS% %PROXY_SETTINGS% %SERVER_CLASS% >"%WLS_REDIRECT_LOG%" 2>&1

En donde los valores de la JVM utiliza como parametro la variable MEM_ARGS. Esta variable no se encuentra definida en este archivo, y podemos notar que hay una llamada a otro archivo que sera en donde realizaremos los cambios necesarios setDomainEnv.cmd

call "%DOMAIN_HOME%\bin\setDomainEnv.cmd" %*

En mi caso, estoy probando en un equipo Windows de 32 bits, por lo que la variable MEM_ARGS la definirá la siguiente variable MEM_ARGS_32BIT. Tal como podemos apreciar en la seccion en donde son definidias todas estas variables:

set XMS_SUN_64BIT=256
set XMS_SUN_32BIT=258
set XMX_SUN_64BIT=512
set XMX_SUN_32BIT=515
set XMS_JROCKIT_64BIT=256
set XMS_JROCKIT_32BIT=256
set XMX_JROCKIT_64BIT=512
set XMX_JROCKIT_32BIT=512

if "%JAVA_VENDOR%"=="Sun" (
        set WLS_MEM_ARGS_64BIT=-Xms256m -Xmx512m
   set WLS_MEM_ARGS_32BIT=-Xms256m -Xmx512m
   ) else (
   set WLS_MEM_ARGS_64BIT=-Xms512m -Xmx512m
   set WLS_MEM_ARGS_32BIT=-Xms512m -Xmx512m
   )

if "%JAVA_VENDOR%"=="Oracle" (
   set CUSTOM_MEM_ARGS_64BIT=-Xms%XMS_JROCKIT_64BIT%m -Xmx%XMX_JROCKIT_64BIT%m
   set CUSTOM_MEM_ARGS_32BIT=-Xms%XMS_JROCKIT_32BIT%m -Xmx%XMX_JROCKIT_32BIT%m
   ) else (
   set CUSTOM_MEM_ARGS_64BIT=-Xms%XMS_SUN_64BIT%m -Xmx%XMX_SUN_64BIT%m
   set CUSTOM_MEM_ARGS_32BIT=-Xms%XMS_SUN_32BIT%m -Xmx%XMX_SUN_32BIT%m
   
) set MEM_ARGS_64BIT=%CUSTOM_MEM_ARGS_64BIT% set MEM_ARGS_32BIT=%CUSTOM_MEM_ARGS_32BIT% if "%JAVA_USE_64BIT%"=="true" ( set MEM_ARGS=%MEM_ARGS_64BIT% ) else ( set MEM_ARGS=%MEM_ARGS_32BIT%
)

Lo que haremos sera crear una nueva variable que contenga los valores que necesitemos para cada uno de los servidores. Para realizarlo podemos verificar el servidor que esta iniciando para asi poder asignarle la memoria que consideremos necesaria. Para poder distinguir que es una variable creada por nosotros la definimos de la siguiente manera:

set DAV_MEM_ARGS=-Xms512m -Xmx512m

Posteriormente verificamos el servidor y asignamos los valores que necesitemos.

if "%SERVER_NAME%" == "AdminServer" (
   set DAV_MEM_ARGS=-Xms611m -Xmx612m
)

if "%SERVER_NAME%" == "soa_server1" (
   set DAV_MEM_ARGS=-Xms611m -Xmx612m
   )

if "%SERVER_NAME%" == "bam_server1" (
   set DAV_MEM_ARGS=-Xms711m -Xmx712m
   )

Finalmente asignamos a la variable MEM_ARGS

   set MEM_ARGS=%DAV_MEM_ARGS%

Con estos cambios una vez que iniciemos los servidores podemos notar el cambio de los valores en la memoria y administrar de mejor manera los servidores.

mem1.jpg

mem2.jpg

mem3.jpg

Espero que este post pueda ayudar a realizar las modificaciones que cada uno necesita para sus diferentes proyectos, ya sea en los cambios de otros parametros hasta la creacion de archivos para verificar los errores que puedan ocurrir. Todos estos datos y demas configuraciones los podemos encontrar en los manuales de weblogic que no esta de mas darles una revisada, dejo el link.

Fuentes

http://download.oracle.com/docs/cd/E17904_01/web.1111/e13708/overview.htm Oracle® Fusion Middleware Managing Server Startup and Shutdown for Oracle WebLogic Server 11g Release 1

Un comentario en “Configuracion Independiente en las Memorias de los Servidores de un Dominio SOA, BAM, OSB

  1. Si, instalaron SOA, entonces el archivo donde tienen que hacer la configuración de la memoria es el setSOADomainEnv.cmd o setSOADomainEnv.sh, según corresponda al sistema operativo.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s