WebLogic NodeManager Quick Start

*Update 1/10/2010* I realized after my post that I forgot a few things.  1) You should always have a catchy image at the top of a blog post to add some visual context to your post (see TechCrunch for a blog that almost always follows this).  So I’ve added a NodeManager architecture diagram.  2) My colleague Phil Aston (co-author of the book I recommend below) pointed out a much simpler way of configuring the classpath to use StartScriptEnabled=true in nodemanager.properties which I refer to below.

nm_architecture

One of my customers is new to WebLogic and asked if I could instruct them how to automatically start their WebLogic Server instances when the OS is booted.  Node Manager can be used for that and more.  I put together a quick start guide that might help you get started quickly if you’re new to Node Manager like I was earlier today.  I’ve translated most of that documentation into a quick blog post.  I’ve definitely cut some corners (using demo certs, default path to the domain dir and node manager dir, etc).  If you want to get a feel for Node Manager quickly taking those grains of salt, read-on.  There is no included service for *nix systems, you’ll have to create an xinetd service one yourself and there are examples of that in the documentation and in the book referenced below.

Introduction

This is a short guide to getting started with WebLogic Server Node Manager, the process agent used to start and stop WebLogic Server instances. This is not a substitute for the complete documentation, but merely intended to get up and running quickly. Upon completiion of these steps, WebLogic Server processes should be automatically managed by Node Manager. When an OS instance is rebooted, WebLogic Server should return to the state it was in prior to the reboot (either started or stopped).

Official documentation:

http://download.oracle.com/docs/cd/E12839_01/web.1111/e13740/nodemgr_config.htm

484302 cover.indd

Professional Oracle WebLogic Server book with real-world advice and best practices for Node Manager starting on page 560:

http://www.amazon.com/Professional-Oracle-WebLogic-Server-Programmer/dp/0470484306

The book is highly recommended as I mentioned I cut some corners here for simplicity.

Starting Point

The assumption is that the WebLogic Server installation has been done and that the Node Manager Windows Service was installed as a part of the installation.

Any paths reflected below should be updated to reflect your directory structures. In fact, it probably would not be a bad idea to find/replace some of the following with the relevant strings:

  • WebLogic Server installation path: D:\Oracle\wls11g
  • Hostname: jbayer-us
  • Domain path: D:\Oracle\wls11g\user_projects\domains\my_domain

Uninstall / Reinstall NodeManager Service

This needs to be done if you installed Node Manager with the standard installer because by default Node Manager binds to localhost. So as more OS instances are added, it will be required to have Node Manager instances on the network communicate to each other. This can only happen if Node Manager binds to an network interface that is available remotely.

  • open cmd prompt
  • run D:\Oracle\wls11g\wlserver_10.3\server\bin\setWLSEnv.cmd
  • run D:\Oracle\wls11g\wlserver_10.3\server\bin\uninstallNodeMgrSvc.cmd
  • Make backup copy of installNodeMgrSvc.cmd
  • edit installNodeMgrSvc.cmd to bind to hostname for remote starts
  • set NODEMGR_HOST=jbayer-us
  • run D:\Oracle\wls11g\wlserver_10.3\server\bin\installNodeMgrSvc.cmd
  • start the service – mine is called “Oracle WebLogic NodeManager…” but on older versions it’s likely will start with “BEA …”
  • starting the NodeManager process should create the nodemanager.properties file we will edit next

CrashRecovery and StartupScriptEnabled (updated 01/10/2010)

  • We want to Enable NodeManager to restore servers to their last known state after a reboot.
  • Open nodemanager.properties from the directory D:\Oracle\wls11g\wlserver_10.3\common\nodemanager\
  • Change the CrashRecoveryEnabled property from false to true:
  • CrashRecoveryEnabled=true
  • Also, because the domain’s \bin\startWebLogic script already has classpath configured, which is especially helpful for use with SmartUpdate that manages WebLogic patches as those classpath’s are not trivial to understand, I strongly recommend setting StartupScriptEnabled=true StartScriptEnabled=true in nodemanager.properties (Thanks to Ray T for the typo fix 6/29/10)
  • stop/start node manager after making changes to nodemanager.properties

Set up the Machines

  • Go to the domain's AdminServer console
  • http://localhost:7001/console
  • If you need to start it, run <your_domain_dir>\bin\startWebLogic.cmd
  • With the console navigate to <domain_name> -> Environment -> Machines
  • Create a new machine – I named mine after the hostname of the server - jbayer-us
  • If you have more than one OS instance, create one machine for each.

nm_machines

  • In console go to <domain_name> -> Environment -> Servers
  • Create a new server, example: managedServer1
  • Put in the listen address to the hostname you want to bind to, in my case jbayer-us
  • Change the port to 8001or another available port so as not to conflict with the 7001 port of the AdminServer
  • Assign managedServer1 it to the jbayer-us machine you just created - <domain_name> -> Enviornment -> Servers -> managedServer1
  • There should be a dropdown you can use to select the machine
  • Click the save button on this settings page (don't forget this step)
  • Now activate changes if required

We need to assign the machine for the AdminServer, this cannot be done while the AdminServer is running.

  • Stop AdminServer
  • Open the domain config, example - D:\Oracle\wls11g\user_projects\domains\my_domain\config\config.xml
  • Find the element used to assign the machine for managedServer1
  • <machine>jbayer-us</machine>
  • Copy that and paste that element right after the AdminServer <name/> element
  • If it is not already set, 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.
  • After these changes my config.xml snippet for the AdminServer looks like this:
<server>
<name>AdminServer</name>
<machine>jbayer-us</machine>
<listen-address>jbayer-us</listen-address>
</server>


  • Start the AdminServer again with the domain directory’s bin\startWebLogic.cmd
  • Check the console page <domain_name> -> Environment -> Servers to see that the servers are defined correctly as expected

Enroll the domain with Node Manager (updated 01/10/2010)  


  • Navigate with a command prompt go to the domain directory
  • run bin\setDomainEnv.cmd
  • run java weblogic.WLST
  • connect to the AdminServer with your credentials:
  • connect('weblogic','welcome1','t3://jbayer-us:7001')
  • Make sure you use forward slashes instead of backslashes in Windows:
  • nmEnroll(domainDir='D:/Oracle/wls11g/user_projects/domains/my_domain',nmHome='D:/Oracle/wls11g/wlserver_10.3/common/nodemanager')
  • Now go back to the web console - http://localhost:7001, for each server in the environment, go to the server start tab and put in the appropriate values.
  • serverStartTab If you are using StartScriptEnabled=true in nodemanager.properties, then the classpath and jvm arguments from the script will be used first and the values you specify on the Server Startup tab will get added to the end, so you only need to enter values that are unique to each server in the classpath and arguments section.
  • If you’re using Sun JDK instead of JRockit, then use –Xrs instead of –Xnohup refer to the official docs for more on this, but it has to do with handling OS signals properly.
  • 7-2-10 update: Reader Ray T writes in with another tip: 

    “After some testing: starting, stopping servers, killing processes, rebooting etc after the configuration, I also found that I could not get the managed servers to shutdown cleanly - or at least the console would not recognize that they had. This had the added side effect of then not letting me start/restart a managed server via the console.

    I found that also adding StopScriptEnabled=true solved that final problem.”



Click the image to enlarge – actual text values below:

Java Home

D:\Oracle\wls11g\jrockit_160_14_R27.6.5-32

Java Vendor

Oracle

BEA Home

D:\Oracle\wls11g

Root Directory

D:\Oracle\wls11g\user_projects\domains\my_domain

Classpath is empty as the script values are sufficient

Arguments

-Xnohup

Security Policy File

D:\Oracle\wls11g\wlserver_10.3\server\lib\weblogic.policy

User Name

weblogic

Password

welcome1

Confirm Password

welcome1


  • Save
  • Now do the same thing for each managed server.
  • Activate the changes if required

Node Manager Domain Username and Password


  • Set the Node Manager username/password for the domain in the console
  • Click <domain_name> in the console navigator
  • Select Security tab
  • Expand to the "Advanced" options about half-way down the page
  • Choose a Node Manager username/password and put it in the username/password/confirm boxes your credentials, these could be unique from your user used to start the AdminServer, but I chose to keep mine the same weblogic/welcome1.  If you change this user name and password, then you’ll need to specify both when using the command nmConnect().  Thanks Ray T for the catch - 6/29/10.

Decrease Log Verbosity For Standard OutnmCriticalLogSetting


  • In console, go to each server's Logging -> General page
  • Expand to the Advanced section half-way down the page
  • Change the standard out notice level to "Critical"
  • This log file that captures Standard Out does not roll over while a server is running, so it's really important to make sure this file doesn't get too large. Note that this is not the server log file, this is only standard out.

 

Have NodeManager Start and Stop the Servers


  • If it is running, shutdown the AdminServer
  • Start the AdminServer with NodeManager
  • Go to domain dir
  • run bin\setDomainEnv.cmd
  • run java weblogic.WLST
  • nmConnect(domainName='my_domain')  nmConnect(domainName=’my_domain’, username=’weblogic’, password=’welcome1’)  6/29/10 Updated thanks to Ray T who noticed that if you change the domain’s Node Manager user and password in the section above called “Node Manager Username and Password” that you’ll need to specify those values here otherwise the defaults of weblogic/welcome1 are used, which worked in my case, but not for others.
  • nmStart('AdminServer')
  • Go to console -> Environment -> Servers control tab and start the managed server from the console. It will send a command to Node Manager which actually performs the operation on the console's behalf.
  • Gotcha! – If you have never started the managed server ever before and you try to start it from Node Manager, you might get an error.  In the server log it mjght say something like: Booting as admin server, but servername, managedServer1, does not match the admin server name, AdminServer  To get around this, simply start the Managed Server for the first time using either the Admin Console Servers->Control tab or the startManagedWebLogic.cmd script.  Subsequent nmStart commands should not have this issue any longer.

Test Killing and Restarting

If the servers are started successfully by Node Manager, try and kill a process from task manager and see if it restarts.

Looking at the Node Manager directory in the domain for each Managed Server, you will be able to see the state - below is a screenshot of managedServer1's files. The PID and .state files should tell you what you need to know to see if the server recovered.  If it did not, the .out file in the server log directory should hopefully give you a clue why.

nmDir

If manual killing of the process restarts a Server then you are ready to test an operating system reboot. Reboot the machine without stopping the WebLogic Servers. Each server should be restored to the state that it was in when the OS was rebooted.

If you have questions, post them in the WLS General OTN forum as I’m not an expert on Node Manager – just someone who wanted have a quick start guide.  Cheers, James

Comments:

Great Post. I recently did this same activity. I automated the whole process using WLST. Some of my experiences below: WLST code to change Node Manager Password in WebLogic connect(AdminUserName, AdminPassword, 't3://'+AdminServerHost+':'+AdminServerPort) edit() startEdit() # Set the Node Manager Password cd('/SecurityConfiguration/' + DomainName) cmo.setNodeManagerUsername(AdminUserName) set('NodeManagerPassword', AdminPassword) save() activate(block="true") I am not sure if you need to set the properties in the Server Start page if you are using StartScriptEnabled=true I use the following script to start my managed servers: nmConnect(AdminUserName, AdminPassword, AdminServerHost, NodeManagerPort, DomainName, DomainHome, 'ssl') nmStart('AdminServer') connect(AdminUserName, AdminPassword, 't3://'+AdminServerHost+':'+AdminServerPort) start('ManagedServer1', 'Server', block='false') The main advantage of this approach is that if you have a domain spanning multiple hosts you don't have to connect to the Node Manager if each host to start the server. It operates the same as if you are starting the server via the admin console.

Posted by Nick on January 10, 2010 at 07:52 AM PST #

Thanks James for this wonderful post and this seems to complement my 10 pointer for Node Manager in WebLogic here http://onlineappsdba.com/index.php/2010/01/07/oracle-weblogic-server-node-manager-in-nutshell/ Regards Atul Kumar

Posted by Atul Kumar on January 11, 2010 at 12:23 AM PST #

Thanks James, excellent information. Just curious though. The "managedServer1" did you create that just so you can copy the tag. If your domain already has servers you want to manage, do you need the "managedServer1" machine if you do everything else? or Do you recommend creating that machine for the process, and then removing it later?

Posted by Mike Turner on March 10, 2010 at 11:24 PM PST #

Mike, from the docs: A machine is the logical representation of the computer that hosts one or more WebLogic Server instances. Each Managed Server must be assigned to a machine. http://download.oracle.com/docs/cd/E12839_01/apirefs.1111/e13952/taskhelp/machines/ConfigureMachines.html As far as I understand, machine definitions are simply part of the configuration of Node Manager. Thanks, James

Posted by james.bayer on March 11, 2010 at 12:04 PM PST #

Excellent write up!! Saved my day :-)

Posted by Peter Lorenzen on April 14, 2010 at 09:24 PM PDT #

Any clue why AdminServer.out won't roll over automatically? Or how we might just turn it off since most of the logging is done in the other logs anyways?

Posted by Steven Landry on May 05, 2010 at 12:26 AM PDT #

I'm think the .out file won't roll because it's process standard error and standard out that can't be directed to a file that rolls. It's recommended not to use System.out System.err in a verbose way for that reason. I think if it's becoming a problem that you can redirect them to a sink like /dev/null or something like that. It's never come up before for me. Thanks, James

Posted by james.bayer on May 05, 2010 at 02:58 AM PDT #

Hi , Please can you let me know if we can change the path of standard out files when you start the managed servers via Node Manager. We want to put all the log files including the standard out file in a seperate location and not in the logs directory . We have managed to change the location of .log files but not the .out file. Any replies are welcome. Thanks Kaustubh

Posted by Kaustubh Dighe on June 20, 2010 at 10:29 PM PDT #

Thanks James - it was a struggle to put the pieces together from the official doco. Your "to the point guide" is exactly what I needed to make sense of it all. The only thing I found was that the last nmConnect(domainName='my_domain') required nmConnect('weblogic','mypassword','localhost','5556','mydomain') Otherwise if you're password is anything other than the default Welcome1 - it won't work as that is what nmConnect(domainName='my_domain') defaults to. And it results in a "Access denied" message. Also a boon for JEE/ADF servers is that the StartupScriptEnable is not only SmartUpdate friendly but it is also the key to having your ADF enabled managed servers working. Cheers RT

Posted by Ray T on June 28, 2010 at 11:18 AM PDT #

PS - on WLS 10.3.2. on Windows the StartupScriptEnabled property in nodemanager.properties that you refer to is actually "StartScriptEnabled" I have not checked this on other versions or platforms. Cheers RT

Posted by Ray T on June 28, 2010 at 11:29 AM PDT #

Great feedback Ray. i'll update the blog with a hat-tip to you for catching the password issue for nmConnect. I understand more of the moving parts now and perhaps I'll have a new post to reflect the additional points I've learned along the way. Cheers, James

Posted by james.bayer on June 28, 2010 at 09:24 PM PDT #

Another great catch. Thanks Ray

Posted by james.bayer on June 28, 2010 at 09:30 PM PDT #

Kaustubh, It doesn't look like the location of the .out log file is configurable for servers. If I find out otherwise I'll let you know. http://download.oracle.com/docs/cd/E14571_01/web.1111/e13740/overview.htm#i1075241 Thanks, James

Posted by james.bayer on July 02, 2010 at 05:09 AM PDT #

You most certainly can change the location of the .out file. Just add this line to your server's startup arguments... -Dweblogic.Stdout=D:/logs/blah/blah/server1.out Andy

Posted by Andy Levy on July 29, 2010 at 03:44 AM PDT #

where does msi-config.xml reside in case of remote MS box. i mean physical location. and if admin server doesn't starts then the location would be?

Posted by Shafquat on October 23, 2010 at 11:44 PM PDT #

Shafquat, I believe msi-config.xml is an old file no longer applicable to releases of WLS past 8.1. There is a mention of it in the 8.1 docs. http://download.oracle.com/docs/cd/E13222_01/wls/docs81/adminguide/failures.html Please ask followup at the WLS forum on OTN because I often can not provide timely responses in email. http://forums.oracle.com/forums/forum.jspa?forumID=570 Thanks, James

Posted by james.bayer on October 24, 2010 at 03:12 PM PDT #

Hai james, WebLogic Server provides two versions of Node Manager. 1. Java based Node Manager 2. Script based Node Manager The Java based Node Manager used in windows system. The script base Node Manager is used in UNIX or LINUX system. The script based Node Manager are using the SSH client. The main advantages in the script based Node Manager is “Automatic Server Migration” is available in the Script based Node Managed not available in the Java based Node manager. In your blogs gives the details about how to configure the java based node based. i also configured the java based node manager.but How to configure the Script based Node manager in LINUX system? http://download.oracle.com/docs/cd/E14571_01/web.1111/e13740/script_nodemgr.htm Regards, S.Vinoth Babu.

Posted by vinoth babu on November 21, 2010 at 11:47 PM PST #

S.Vinoth Babu, I have not used the script-based Node Manager before, but the documentation link is correct. I would simply try following the instructions here: http://download.oracle.com/docs/cd/E14571_01/web.1111/e13740/script_nodemgr.htm If you have issues, try posting in the OTN WLS General forum or opening a support case for assistance. Good luck, James

Posted by james.bayer on November 22, 2010 at 12:40 AM PST #

James, while installing Grid control, it asked for nodemanager password. I gave welcome1, same as for weblogic user. Now the OMS CA has failed and in logsI see following errors regarding user nodemanager which I never created. ========== SEVERE: Exception: during stop of admin server Name of Exception: main.WLSTException Code of Exception: Error occured while performing nmConnect : Cannot connect to Node Manager. : Access to domain 'GCDomain' for user 'nodemanager' denied Use dumpStack() to view the full stacktrace weblogic.nodemanager.NMException: Access to domain 'GCDomain' for user 'nodemanager' denied any clue as to why and how to set passowrd for this user in weblogic. Version i am suing is 10.3.2 which is certified for Grid Contorl 11g. regards, Nazir

Posted by Nazir Lugenga on January 27, 2011 at 07:25 PM PST #

It appears as if node manager is trying to connect to the domain as the user "nodemanager" and not as "weblogic". Did you enroll the domain with Node Manager using the nmEnroll operation and use the user name and password from that? Try bouncing node manager after you enroll the domain just in case. Thanks, James

Posted by james.bayer on January 28, 2011 at 01:35 AM PST #

Hi James, as to the question of whether I enrolled node manager with nmEnroll operation, the answer is not obvious. I did do a typical install, all automated. And also the Grid controcl installation has screen shot where you have to provide password for Node Manager and weblogic. Well, I found a metalink node to fix that WebLogic - Getting exception in WLST "weblogic.nodemanager.NMException: Access to domain for user denied" [ID 889842.1] But I am still stuck on the same OMS configuration. I was able to change cryptic nodemaneger usernae to nodemanager, and indeed change password as explained on the node above. Let me troubleshoot the current failure before posting errors. But it seems Grid control installation guide is not well documented! regards, nazir

Posted by Nazir Lugenga on January 30, 2011 at 03:35 PM PST #

Hi James, the screen shot where the installer askS for Node manager user as nodemanager, clearly stated as that. This is on page 2-20 chapter Installaing Enterprise Manager System, in Oracle Enterprise Manager Grid Control Basic Installation Guide, latest. regards, nazir

Posted by Nazir Lugenga on January 30, 2011 at 05:14 PM PST #

I have referenced this blog many times. The one thing I would suggest adding to your article is suggesting putting a boot.properties (with the proper syntax) in the AdminServer/security folder. I am pretty sure this is a necessary step in order to use the nodemanager from the command line.

Posted by Steve on February 18, 2011 at 07:15 AM PST #

Thanks for the comment Steve. This blog post needs updating. It's on my list. Thanks, James

Posted by james.bayer on February 18, 2011 at 08:00 AM PST #

Good Post. I am having an issue wherein I would like to script the startup and shutdown procedures for the whole weblogic environment. The weblogic environment consists of Weblogic, Forms&Reports only. I have followed the metalink note 854117.1 to install forms & reports. I can start the nodemanager from middleware_home/wlsserver/bin/startNodeManager.sh. But i cannot stop up except to kill the process as mentioned in the http://download.oracle.com/docs/cd/E12840_01/wls/docs103/pdf/nodemgr.pdf page 65, Let me know if there is any way of stopping the nodemanager apart from killing the process.

Posted by Sai on March 20, 2011 at 02:31 PM PDT #

Yes, in order to stop Node Manager, you need to terminate the process it is running as. There is a WLST operation that will do this for you named stopNodeManager: http://download.oracle.com/docs/cd/E17904_01/web.1111/e13813/reference.htm#CACHJGJJ Other techniques, in Windows, you can stop the Windows Service. In *nix environments either exiting the shell (if startNodeManager.sh is used) or a kill command will both work. Good luck, James

Posted by james.bayer on March 20, 2011 at 02:39 PM PDT #

Helpful post. The effort is appreciated. The documentation has reputedly been updated for 11g, but seems like there's still many large gaps when it comes to the proper way to manage these services in a production environment. We've set up the scripted node manager everywhere since it's imperative we retain a consistent setup between environments, and the script-based node manager appears to be a requirement for clustering. I prefer the calling the wlscontrol script over SSH anyway - it puts the security between the machines back in the server's hands, and avoids a lot of extra java 'stuff' that seems unnecessary. The intertubes have provided adequate init scripting for starting the AdminServer automatically, but I see precious little advice, docs, or best-practices for how to automatically start our managed servers. Any suggestions?

Posted by Scott555 on March 25, 2011 at 06:06 AM PDT #

I have followed the above steps & getting below please help on this & do we need to start startNodemanager.cmd manually if yes i tried it & getting SSL error. wls:/offline> nmConnect(domainName='clm_domain', username='weblogic', password=' weblogic') Connecting to Node Manager ... Traceback (innermost last): File "", line 1, in ? File "", line 1390, in nmConnect WLSTException: Error occured while performing nmConnect : Cannot connect to Node Manager.Connection refused: connect. Couldn't connect to NodeManager. Check tha t it is running at localhost:5556 Use dumpStack() to view the full stacktrace

Posted by Pawan on April 03, 2011 at 09:28 PM PDT #

That message "Couldn't connect to NodeManager.Check that it is running at localhost:5556 Use dumpStack() to view the full stacktrace" means that the WLST client was unable to make a connection to Node Manager at the supplied host and port. Check that Node Manager is running and see which listen address and port it is using to make sure it matches what you are trying from WLST.

Posted by james.bayer on April 04, 2011 at 12:52 AM PDT #

Hi James, Now i m able to start AdminServer with nmStart. But when i tried to start manage server with same command like this nmStart('Manage-1') getting below error - ERROR: transport error 202: bind failed: Address already in use it looks like port conflict but not sure where it is using 202 .. Where i can chk & change it or what i can do here ..??

Posted by Pawan on April 04, 2011 at 04:59 PM PDT #

Pawan, 202 is the error code, not the port number. The WLS server log should show you whether it is the listen port that is already bound to another process or whether it is something else like a JVM debug port. You can also use the netstat command to view which ports are currently listening on your machine. Thanks, James

Posted by james.bayer on April 04, 2011 at 11:07 PM PDT #

Hi James, Its resolved & node manager is running fine & its in active state. Now there are two issues. While start the Manage server gettiing the following error - Authentication denied: Boot identity not valid-
<> <> <> <1302087369531> Traceback (innermost last): File "", line 1, in ? File "", line 112, in nmConnect WLSTException: Error occured while performing nmConnect : Cannot connect to Node Manager.[Security:090476]Invalid/unknown SSL header was received from peer loca lhost - 127.0.0.1 during SSL handshake. Use dumpStack() to view the full stacktr ace Thansk in advance for ur help.

Posted by Pawan on April 05, 2011 at 08:12 PM PDT #

Pawan, Make sure the server can boot without Node Manager using the standard scripts. You may need to edit the server's DOMAINHOME/servers/SERVERNAME/security/boot.properties file with the right values. You can disable host name verification with the java property: -Dweblogic.security.SSL.ignoreHostnameVerification=true Try that on the client and server. I'm going to be unresponsive due to workload so please ask followup questions on the OTN WLS forums. Thanks, James

Posted by james.bayer on April 07, 2011 at 04:22 PM PDT #

Hello, Very helpful post ..certainly cleared some of my initial thoughts and questions . I have put together wlst commands to start node manager , admin server and the managed servers. The commands work fine and I have validated that the node manager is aware of the status of the admin server as well as the managed servers. I killed the managed server using the UNIX kill command and I observed that the node manager detected that and immediately restarted it ...which is what I wanted. But the same did not happen when I restarted the server. After the server came up and I started the node manager , it did not restart either the manged server or the admin server. When I ran the nmServerStatus('AdminServer') command , it showed "UNKOWN" . what could be the issue?

Posted by Amith on April 13, 2011 at 01:05 PM PDT #

Amith, I think this might be because when you restart the server, that WLS is told to stop by the OS, and is noted as stopped in the file that tracks the state. E.g. ManagedServer_1.state in the directory MIDDLEWARE_HOME/user_projects/domains/base_domain/servers/ManagedServer_1/data/nodemanager If you had a hard OS crash I would expect the server to restart. If you want to auto-start WLS, you probably need a script that connects to Node Manager and starts the servers that should be started. If you have questions about that, I suggest the OTN WLS General forum because I have not gone this far with it. Thanks, James

Posted by james.bayer on April 14, 2011 at 08:42 AM PDT #

Nice post James. Just a note for the dev envs. During development, admin and managed servers are created in one m/c. To start and stop the managed servers from admin console, 1. Just start the nodemanger. 2. Create and assign m/cs(listening address localhost) to managed server. Now managed servers can be started from admin console. For dev envs where admin and managed servers are in just one m/c , there is no need to do all these configuration steps. Following is the copy of the official doc, about node-manager default behavior. Node Manager is ready-to-run after WebLogic Server installation if you run Node Manager and the Administration Server on the same machine, and use the demonstration SSL configuration. By default, the following behaviors are configured: You can start a Managed Server using Node Manager through the Administration Console. Node Manager monitors the Managed Servers that it has started. Automatic restart of Managed Servers is enabled. Node Manager restarts server instances that it killed or were killed by another method.

Posted by Ganesh on April 29, 2011 at 12:30 AM PDT #

Hi James, Thanks for your suggestion on whether to enable SecureListener(SSL) for node manager or not in Production environment. Our client requirement is to have a setup which provides minimal outage (or no outage at all) because of weblogic patch installation. We were trying to setup 5 weblogic domains (We are using two physical boxs with windows 2008 Server running on them). The setup is like this for a domain (Admin & Managed Server1) will run in one box(system). Managed Server2 runs in another box. This is the same setup for all the 5 domains. (by the way all these domains are created in a shared drive which is accessible from both the systems). The issue we had here is there are two different types of approaches in front of us for patching weblogic. 1) First one is to create all 5 domains from single bea_home. 2) Have one bea_home for one domain (So in total for 5 domains we will have five different bea_homes). In general what is the Oracle's recommendation option 1 or option 2???. We are going to use Weblogic Whole Server Migration feature for automatic server migration. With first one we will fail over all the servers to one one box, and apply patches in other box. Again fail over all the servers to the box where the patches are applied and we will apply patches in other box. Do we have any situation where we need to bring down all the weblogic server instances to apply a patch?????? (Assumption is we are not going to upgrade weblogic to a different patch set or version which might require to bring down all the servers). If there is a case where we need to bring down all the servers to install patches then second one is preferred. Because this impacts only one domain. But the down side of it is to install patches on all the 5 domains (Extra Work). What is the oracle's recommendation??? Kindly requesting you to provide the best approach. Thanks Ravi,

Posted by guest on May 08, 2011 at 11:17 PM PDT #

Ravi, In general I would recommend separate MW_HOME directories (previously known as BEA_HOME) for environments that need to be managed independently for whatever reason. For example, let's say Departments A and B both host applications on this environment. Perhaps Department A wants to upgrade to a newer release of WLS or apply a patch to WLS, but Department B does not have time to QA their applications with the change and does not want to take on the risk. This is a reason you may want multiple MW_HOME instances. However, in many circumstances you may be able to share MW_HOME instances (previously known as BEA_HOME) because the Departments using the environments have the same SLAs. WLS does not use OPatch directly as of the time of this comment, but you can look at the OPatch guidelines for ideas of how this is handled in FMW in general. It shows scnearios with local disk MW_HOME and shared disk MW_HOME. See 2.3.3.1 and 2.3.3.2 in the Patching Guide: http://download.oracle.com/docs/cd/E17904_01/doc.1111/e16793/opatch.htm In the future, please ask support for guidelines as they provide advice and best practices in this area every day. Thanks, James

Posted by james.bayer on May 11, 2011 at 02:59 AM PDT #

Hi James, Thanks for the excellent post. I followed all the steps and able to set up the NodeManager. I have Admin Server, Managed Server and Node Manager running on same host i.e. localhost. The only difference in my environment is that I am running Admin server in production mode enabled. I am able to start the Admin Server using "nmStart('AdminServer')" WLST command. But when i try to start managed server "nmStart("cafe2_srv_01") , I get the following: weblogic.management.ManagementException: Booting as admin server, but servername, cafe2_srv_01, does not match the admin server name, AdminServer I noticed that, in nodemanager.properties file, StartScriptName=startWebLogic.cmd I can clearly relate the issue with this is: For Admin Server startup, Nodemanager uses above script and server coming up nicely. Now, when Nodemanager try to start Managed server using above script, its trying to start it as "AdminServer" instead of "cafe2_srv_01". My Question is: How can i configure Nodemanager to use "startManagedWeblogic.cmd" for the Managed one and for the admin server to use whatever it is currently using. Once again, thanks for your dedicated support and hard work. Thanks Rajesh

Posted by Rajesh on May 20, 2011 at 01:43 AM PDT #

Rajesh, Here is what I remember doing to work around this issue when I encountered it. Try starting the managed server one time via the script startManagedWebLogic outside of using Node Manager. Then stop the server and this time use Node Manager still using startWebLogic as the script. I think this time it will start. I need to do a refresh of this whole article and hopefully at that time this can be addressed. You can always look at the Node Manager log file to see what commands were fed to the script if is any doubt whether the right values are being passed. Thanks, James

Posted by james.bayer on May 20, 2011 at 02:43 AM PDT #

Hi James, What only works for me was to start the managed servers from the console, start managed scripts was not enough And to start from the console I had to disable the hostname verification Now nmstart is working perfectly Thanks

Posted by Edwin Biemond on May 23, 2011 at 09:28 PM PDT #

Hello,

Great article there, help me lots in setting up my server.

Only problem is, when I do a system restart, only the managed servers start up, the AdminServer does not. This seems to mean that my WebCenter Spaces server does not perform correctly.

If I power off, i.e. at the plug, all the servers will come back on, it is as if when I do a system restart, the AdminServer gets turned off before hand and thus does not return back to the running state when I power the machine back on.

Should the admin server start up using the above guide, or have I done something wrong?

Thanks
Chris

Posted by Chris on August 02, 2011 at 06:39 PM PDT #

As has been noted in the comments, you may not be able to start the managed servers using NM (e.g. nmStart), until you've started them from the admin console.

I also like to connect to the admin server using NM (especially from remote machine), and then issue the start command to start my managed servers. This works nicely as well, especially if you've got the process scripted, and don't want to bother with logging in to the admin console.

Posted by guest on August 05, 2011 at 01:17 AM PDT #

I am a weblogic student ihave only one system,Ihad started Weblogic Server and from another commnd prompt started WLST and connected to admin server,and when i tried to connect to nodemnager it gives me security parse exception: How to get separate sercurity certificates for node manager sepaaaareately

Q)from WLST when i want to connect to nodemanager it gives me error
(my admin server manner servers and nodemanagers are running in same machine)
when i issue nmConnect().....
from WLST
wls:/dizzyworld/serverConfig> nmConnect('weblogic','weblogic1','localhost','5556
','dizzyworld')
Connecting to Node Manager ...
<Aug 27, 2011 5:38:57 PM PDT> <Notice> <Security> <BEA-090898> <Ignoring the tru
sted CA certificate "CN=KEYNECTIS ROOT CA,OU=ROOT,O=KEYNECTIS,C=FR". The loading
of the trusted certificate list raised a certificate parsing exception PKIX: Un
supported OID in the AlgorithmIdentifier object: 1.2.840.113549.1.1.11.>
<Aug 27, 2011 5:38:57 PM PDT> <Notice> <Security> <BEA-090898> <Ignoring the tru
sted CA certificate "CN=T-TeleSec GlobalRoot Class 3,OU=T-Systems Trust Center,O
=T-Systems Enterprise Services GmbH,C=DE". The loading of the trusted certificat
e list raised a certificate parsing exception PKIX: Unsupported OID in the Algor
ithmIdentifier object: 1.2.840.113549.1.1.11.>
<Aug 27, 2011 5:38:57 PM PDT> <Notice> <Security> <BEA-090898> <Ignoring the tru
sted CA certificate "CN=T-TeleSec GlobalRoot Class 2,OU=T-Systems Trust Center,O
=T-Systems Enterprise Services GmbH,C=DE". The loading of the trusted certificat
e list raised a certificate parsing exception PKIX: Unsupported OID in the Algor
ithmIdentifier object: 1.2.840.113549.1.1.11.>
Traceback (innermost last):
File "<console>", line 1, in ?
File "<iostream>", line 1409, in nmConnect
File "<iostream>", line 1744, in raiseWLSTException
WLSTException: Error occured while performing nmConnect : Cannot connect to Node
Manager. : Access to domain 'dizzyworld' for user 'weblogic' denied
Use dumpStack() to view the full stacktrace
wls:/dizzyworld/serverConfig>

Posted by mahesh on August 27, 2011 at 12:18 AM PDT #

Mahesh, it looks like you are running into SSL problems. I recommend contacting Oracle Support or the OTN Forums for WLS Security https://forums.oracle.com/forums/forum.jspa?forumID=581 as I'm not an SSL expert. Thanks, James

Posted by james.bayer on September 01, 2011 at 05:17 AM PDT #

Chris, the AdminServer should be restarted just like the Managed Servers are. Depending on the OS and JVM, you may need to use the
-Xrs for Hotspot or -Xnohup for JRockit. See Step 5 in the Node Manager documentation for an explanation on what might be happening during an OS restart.
http://download.oracle.com/docs/cd/E21764_01/web.1111/e13740/nodemgr_config.htm#i1102977

One way to test this is to perform a hard-restart.

Posted by james.bayer on September 01, 2011 at 05:25 AM PDT #

Hi All,

We are migrating to a new platform in weblogic 10.3.5. It is running on a WINDOWS 2008 Server and we are planning to use the "Whole Server" migration.

As per our new architecture, we have planned to use NAS over CIFS as a storage medium.

We have placed all the binaries, jars ,JDK files and weblogic core server files,WL_HOME in the "Local Disk" and admin,Managed servers, Filestore and all files related to domain in the CIFS share.

Now, when we start-up the servers without any deployment, it takes almost 5 mins for the server to come-up in "running" mode.

We are bit in a jeopardy now as to whether the architecture and the set-up is appropriate for weblogic over CIFS (or) not?

Any advice (or) suggestions on this setup would be helpful.

(PS: We have found out why the server is taking too long to start-up. When we observe the TCP-IP dump during the server start-up, there were thousands of requests(includes JVM DLL files,exe,weblogic class files, core server class files) sent to the File-server using SMB protocol. Unfortunatley, all those files are present in the "Local DIsk". Hence, we could see that the firts request is sent to the File server, got failed and then the file is being read from the local-disk.)

We have asked oracle support to help us out with this issue but we couldn't get any help.

Thanks,
Ravi.

Posted by guest on September 11, 2011 at 05:55 PM PDT #

Ravi,

Please review the Oracle Fusion Middleware on Shared Storage: Best Practices whitepaper on the MAA site:
http://www.oracle.com/technetwork/database/features/availability/fusion-middleware-maa-155387.html

CIFS is covered there. If you have to, escalate within support and talk to a manager as you are always empowered to talk to a manager on duty if you feel that the case is not progressing.

Thanks, James

Posted by james.bayer on September 14, 2011 at 05:26 PM PDT #

Post a Comment:
Comments are closed for this entry.
About

James Bayer Image
I was formerly a Product Manager on the WebLogic Server team based out of Oracle HQ. You can find my new blog at http://iamjambay.com.
Follow Me on Twitter
Oracle WebLogic

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today