Tuesday, November 5, 2013

WebLogic NodeManager

Hello Everyone,

Node Manager is a optional feature that will allow to start the Managed Server remotely(like from Admin console).Once we start the nodemanager we can check the nodemanager status in admin console(Machines->(machine name)->Monitoring) and we will see the status as "Reachable".This means we now we can start that particular instance through the console.

By default we when we start a server by nodemanager it will in-turn creates a java process which will start the managed server.
But we can make some change in the configuration and make it use our own script.

Also Node Manager provides a fuctionality called “CrashRecovery” which will help to start the Managed server if it got down unexpectly or when the server crashes.




Lets see how Node Manager can be configured.

Below is the default configuration of a working node manager

DomainsFile=D\:\\WLS\\bea1030\\WLSERV~1.3\\common\\NODEMA~1\\nodemanager.domains
LogLimit=0
PropertiesVersion=10.3
javaHome=D\:\\WLS\\bea1030\\JROCKI~1
AuthenticationEnabled=true
NodeManagerHome=D\:\\WLS\\bea1030\\WLSERV~1.3\\common\\NODEMA~1
JavaHome=D\:\\WLS\\bea1030\\JROCKI~1\\jre
LogLevel=INFO
DomainsFileEnabled=true
StartScriptName=startWebLogic.cmd--------------------------------------------
ListenAddress=-------------------------------------------------------------
NativeVersionEnabled=true
ListenPort=5556
LogToStderr=true
SecureListener=true
LogCount=1
StopScriptEnabled=false
QuitEnabled=false
LogAppend=true
StateCheckInterval=500
CrashRecoveryEnabled=false
StartScriptEnabled=false --------------------------------------
LogFile=D\:\\WLS\\bea1030\\WLSERV~1.3\\common\\NODEMA~1\\nodemanager.log
LogFormatter=weblogic.nodemanager.server.LogFormatter
ListenBacklog=50


General issues we encounters are below

1)SSL HandShake error:-

By default nodemanger uses 5556 port which is a standard SSL port.
If we don't want to use SSL change the port number of nodemanager in the WebLogic console and change "SecureListener=false" in the above configuration.

2)If you want use a custom script as a start up script:-

If we have a custom script which we wants we call when the nodemanger is starting then we have to make change in two places in the above configurations
a)StartScriptEnabled=true
b)StartScriptName=

3)Logs will be updated in a file called "nodemanager.log" file.

4)To ensure that Node Manager properly restarts servers after a system crash, we must perform the following:

Ensure that CrashRecoveryEnabled is set to true.
The CrashRecoveryEnabled configuration property allows Node Manager to restart servers after a system crash. The property is not enabled by default.

We should start the Administration Server via Node Manager.
All managed servers should be started via the Administration Server. We can accomplish this via WLST or the Administration Console.
After the system is restarted, Node Manager checks each managed domain specified in the nodemanager.domains file to determine if there are any server instances that were not cleanly shutdown. This is determined by the presence of any lock files which are created by Node Manager when a WebLogic Server process is created. This lock file contains the process identifier for WebLogic Server startup script. If the lock file exists, but the process ID is not running, Node Manager will attempt to automatically restart the server.

If the process is running, Node Manager performs an additional check to access the management servlet running in the process to verify that the process corresponding to the process ID is a WebLogic Server instance.

Note: When Node Manager performs a check to access the management servlet, an alert may appear in the server log regarding improper credentials.