Inicio > Tech - Infrastructure > WebLogic Server 12c: cluster WebLogic, Nodemanager en dominio compartido

WebLogic Server 12c: cluster WebLogic, Nodemanager en dominio compartido

A veces, por necesidad de disponer de Alta Disponibilidad (cluster WebLogic), se puede dar el caso que el nodemanager se cree por dominio en un recurso compartido. Debido a ello se debe realizar ciertas configuraciones adicionales para que, desde cada máquina que conforme el cluster weblogic, el nodemanager de cada una de ellas sea capaz de monitorizarlo.

Vamos a describir los cambios necesarios para poder ejecutar NodeManager en una configuración Weblogic con los ficheros en un directorio compartido, esta configuración es una de las que nos podemos encontrar en condiciones de alta disponibilidad.

Suponiendo que nuestro dominio (en este caso en un SO Windows) esté configurado en Z:\domains y tuviese de nombre “mydomain”, el árbol de directorios sería el siguiente:

  • Para poder realizar la configuración que nos atañe, se tendría que crear 1 directorio por cada máquina que conforme el cluster (por ejemplo host_a y host_b) y copiar el contenido del directorio “nodemanager” (nodemanager.properties, nodemanager.domains) en cada uno de ellos.

NOTA: Adicionalmente podemos eliminar el directorio “nodemanager” ya que se dejará de usar:


  • Después de realizar estas modificaciones en el directorio “mydomain”, cambiaremos el fichero “startNodeManager.cmd” ubicado en el directorio “Z:\domains\mydomain\bin” ya que es éste y no otro el que se usará para iniciar el nodemanager. El contenido de este fichero establece algunas variables de entorno antes de llamar a otro fichero ubicado en el directorio local de instalación del software de cada servidor. El código que contiene es el siguiente:

@REM *************************************************************************
@REM This script is used to start a NodeManager.
@REM This script should be used only when node manager is configured per domain.
@REM This script sets the following variables before starting
@REM the node manager:
@REM
@REM WL_HOME – The root directory of your WebLogic installation
@REM NODEMGR_HOME – The product name. Here it will product name and domain name
@REM *************************************************************************

set WL_HOME=C:\oracle\Middleware\Oracle_Home\wlserver
for %%i in (“%WL_HOME%”) do set WL_HOME=%%~fsi

set NODEMGR_HOME=Z:\domains\mydomain\nodemanager
for %%i in (“%NODEMGR_HOME%”) do set NODEMGR_HOME=%%~fsi

set DOMAIN_HOME=Z:\domains\mydomain
for %%i in (“%DOMAIN_HOME%”) do set DOMAIN_HOME=%%~fsi

set JAVA_OPTIONS=%JAVA_OPTIONS% -Dweblogic.RootDirectory=%DOMAIN_HOME%

@REM start node manager

call “%WL_HOME%\server\bin\startNodeManager.cmd”

ENDLOCAL

Tendremos que modificar la línea en la que se configura el home del nodemanager “NODEMGR_HOME”:

 set NODEMGR_HOME=Z:\domains\mydomain\nodemanager

Lo configuraremos con la variable de entorno COMPUTERNAME para tener el mismo script disponible en caso de ejecutarlo en cada servidor quedando de la forma siguiente:

set NODEMGR_HOME=Z:\domains\mydomain\%COMPUTERNAME%

 

  • El siguiente paso sería modificar el fichero nodemanager.properties de cada directorio creado previamente (host_a y host_b) y cambiar los parámetros DomainsFile, NodeManagerHome y LogFile para que cada uno apunte al home correcto de cada servidor:

#Tue Oct 07 17:56:26 CEST 2014
#Node manager properties
#Tue Oct 07 17:42:43 CEST 2014
DomainsFile=Z\:\\domains\\mydomain\\host_a\\nodemanager.domains
LogLimit=0
PropertiesVersion=12.1.3
DomainsDirRemoteSharingEnabled=true
AuthenticationEnabled=true
NodeManagerHome=Z\:\\domains\\mydomain\\host_a
JavaHome=C\:\\oracle\\Java\\JDK17~1.0_6
LogLevel=INFO
DomainsFileEnabled=true
StartScriptName=startWebLogic.cmd
ListenAddress=
NativeVersionEnabled=true
ListenPort=5556
LogToStderr=true
SecureListener=false
LogCount=1
StopScriptEnabled=false
QuitEnabled=false
LogAppend=true
StateCheckInterval=500
CrashRecoveryEnabled=true
StartScriptEnabled=true
LogFile=Z\:\\domains\\mydomain\\host_a\\nodemanager.log
LogFormatter=weblogic.nodemanager.server.LogFormatter
ListenBacklog=50

En negrita se ha resaltado un parámetro necesario para la configuración de un dominio compartido. Este parámetro se introdujo con la versión 10.3.3 y realiza lo siguiente:

Introduced a Nodemanager property called DomainsDirRemoteSharingEnabled. When this property is enabled, the Node Manager adds NMHostName property to the servers startup.properties file while starting the server. While recovering the server, the Node Manager compares the NMHostName property in the startup.properties file with the hostname on which it is currently running and if it matches then only NM will recover the server.

 

  • Como paso adicional en caso de crear un servicio windows que arranque al iniciar el servidor de forma automática, modificar el fichero “Z:\domains\mydomain\bin\installNodeMgrSvc.cmd” y modificar de la misma forma que en startNodeManager.cmd el parámetro NODEMGR_HOME
  1. Aún no hay comentarios.
  1. No trackbacks yet.

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

A %d blogueros les gusta esto: