Let's start the process: follow the below steps;
We need to enroll the machine on which the domain is running via wlst; for this do the following;
1) Goto - <MiddlewareHome>/<wls server>/common/bin
2) Execute the wlst.sh
bash$> ./wlst.sh
3) Now one needs to connect to the domain via connect() command;
wls:/offline> connect()
Please enter your username :weblogic
Please enter your password :
Please enter your server URL [t3://localhost:7001] :
Connecting to t3://localhost:7001 with userid weblogic ...
Successfully connected to Admin Server 'AdminServer' that belongs to domain 'base_domain'.
4) After this we need to enroll the machine; using nmEnroll() command:
This command does the following;
- Enrolls the machine on which WLST is currently running with Node
Manager. WLST must be connected to an Administration Server to
run this command; WLST does not need to be connected to Node Manager. - This command downloads the following files from the Administration
Server:
o Node Manager secret file (nm_password.properties), which
contains the encrypted username and password that is used for
server authentication - This command also updates the nodemanager.domains file under the
WL_HOME/common/nodemanager directory with this new domain, where
WL_HOME refers to the top-level installation directory for
WebLogic Server.
- If the machine is already enrolled when you run this command, the Node
Manager secret file (nm_password.properties) is refreshed with the
latest information from the Administration Server.
Enrolling this machine with the domain directory at /scratch/ckukreja/Oracle/Middleware/user_projects/domains/base_domain ...
Successfully enrolled this machine with the domain directory at /scratch/ckukreja/Oracle/Middleware/user_projects/domains/base_domain.
5) Goto weblogic console, under Machines -> check if a machine is added their if not create one;
Note: if you create a new machine than provide the node manager host & port details. Dn't use localhost as host name.
Once you update/create the machine, it contacts the node manger & creates some file in its directory path (wlserver/common/nodemanger); like
bash-3.2$ ls -ltr
total 16
-rw-r----- 1 ckukreja dba 114 Oct 18 13:15 nodemanager.domains
-rw-r----- 1 ckukreja dba 0 Oct 18 13:34 nodemanager.log.lck
-rw-r----- 1 ckukreja dba 130 Oct 18 13:34 nm_data.properties
-rw-r----- 1 ckukreja dba 900 Oct 18 13:34 nodemanager.properties
-rw-r----- 1 ckukreja dba 793 Oct 18 13:34 nodemanager.log
Initially only nodemanger.domains file is present under this directory path.
Do a bit of Configurations:
6) Configuring nodemanager.domains File
This file contains the domain name = directory path (key-val pair)
It is present under the following directory path;
<wlserver>/common/nodemanger/
7) Configure nodemanger.properties file:
Set the below 2 parameters value as mentioned below; by default they are set to false;
- StopScriptEnabled=true
- StartScriptEnabled=true
Let's start the node manager
8) Starting the node manager;- Goto the wlserver/server/bin directory;
- Execute startNodeManager.sh
.
.
.
.
<Oct 18, 2015 1:34:11 PM PDT> <Info> <Security> <BEA-090905> <Disabling CryptoJ JCE Provider self-integrity check for better startup performance. To enable this check, specify -Dweblogic.security.allowCryptoJDefaultJCEVerification=true>
<Oct 18, 2015 1:34:11 PM PDT> <Info> <Security> <BEA-090906> <Changing the default Random Number Generator in RSA CryptoJ from ECDRBG to FIPS186PRNG. To disable this change, specify -Dweblogic.security.allowCryptoJDefaultPRNG=true>
<Oct 18, 2015 1:34:11 PM PDT> <Info> <Security> <BEA-090908> <Using default WebLogic SSL Hostname Verifier implementation.>
<Oct 18, 2015 1:34:11 PM> <INFO> <Secure socket listener started on port 5556>
Oct 18, 2015 1:34:11 PM weblogic.nodemanager.server.SSLListener run
INFO: Secure socket listener started on port 5556
When we execute this command, it actually sets the default configuration which it reads from the nodemanager.properties, present at;
<wlserver path>/common/nodemanager directory path.
9) Now we need to add the Admin/Managed Server to the 'Machines' in Weblogic Console, so that node manager can start/stop them;
Note: This cannot be done when server is in running state so first stop the Managed Server;
Now we need to add admin server as well; but we know when server is in running state we cannot do that; so this requires manual effort; let's do that:
<Oct 18, 2015 1:34:11 PM PDT> <Info> <Security> <BEA-090906> <Changing the default Random Number Generator in RSA CryptoJ from ECDRBG to FIPS186PRNG. To disable this change, specify -Dweblogic.security.allowCryptoJDefaultPRNG=true>
<Oct 18, 2015 1:34:11 PM PDT> <Info> <Security> <BEA-090908> <Using default WebLogic SSL Hostname Verifier implementation.>
<Oct 18, 2015 1:34:11 PM> <INFO> <Secure socket listener started on port 5556>
Oct 18, 2015 1:34:11 PM weblogic.nodemanager.server.SSLListener run
INFO: Secure socket listener started on port 5556
When we execute this command, it actually sets the default configuration which it reads from the nodemanager.properties, present at;
<wlserver path>/common/nodemanager directory path.
Assigning Servers to the Machines
9) Now we need to add the Admin/Managed Server to the 'Machines' in Weblogic Console, so that node manager can start/stop them;
Note: This cannot be done when server is in running state so first stop the Managed Server;
Now we need to add admin server as well; but we know when server is in running state we cannot do that; so this requires manual effort; let's do that:
- Stop AdminServer
- Goto the domain config file; present at <domain>/config/config.xml
- Find the element used to assign the machine for oam_server1
- <machine>Machine-0</machine>
- Copy that and paste that element right after the AdminServer <name/> element .
- Also specify the AdminServer listen address to be the hostname to bind to, by default it is blank which means bind to all network interfaces.
- Start the weblogic again.
- Now you will see the Machine-0 registered with the server.
- Configure the start up details for the Managed servers, that are required by the console to start & stop the servers;
- Configure Node Manager Username & password on console;
Connecting to the Servers
10) Now we need to connect to Admin & Managed Server by node manager & console;
- Execute the wlst.sh
bash-3.2$ ./setDomainEnv.sh
*****************************************************
** Setting up OAM specific environment...
.
USER_MEM_ARGS=-Xms1024m -Xmx2048m -XX:PermSize=256m -XX:MaxPermSize=512m
.
*****************************************************
** End OAM specific environment setup
*****************************************************
bash$> cd <wlserver>/common/bin
bash$>./wlst.sh
wls:/offline> help('nmConnect')
Description:
Connects WLST to Node Manager to establish a session. After connecting
to Node Manager, you can invoke any Node Manager commands via WLST.
Node Manager must be running before you can execute this command.
wls:/offline> nmConnect(domainName='base_domain',username='weblogic',password='Welcome1')
Connecting to Node Manager ...
Successfully Connected to Node Manager.
wls:/nm/base_domain> nmStart('AdminServer')
Starting server AdminServer ...
Successfully started server AdminServer ...
Note: Once you are connected to node manager, one can view the logs at
/<domain_directory>/servers/AdminServer/logs/AdminServer.out
Here i have started AdminServer, if it is managed than in its respective directory you can view the log
Now we can start the Admin Server Console;
- Let's start the Managed Server from the console it self;
- Goto servers-> select Control -> Under this you will see the list of servers
- Now select the one you want to start, like in our case we will be starting oam_server1
Note:
Admin/Managed Servers log can be viewed at <domain_dir>/servers/<server_name>/logs/
Test a bit
11) Now its testing time; you need to manually kill the managed servers process & need to verify whether its gets restarted or not.Node manager should restart it, & you can view the server logs to verify the same.
More Info:
https://docs.oracle.com/cd/E23943_01/web.1111/e13740/nodemgr_config.htm#NODEM161
Great Help:
https://blogs.oracle.com/jamesbayer/entry/weblogic_nodemanager_quick_sta
Enjoy :-)