Thursday, July 19, 2012

WebLogic Node Manager for Dummies

Many astute readers of this blog make their living by working with Oracle products such as Oracle BI (formerly known as Siebel Analytics). When Oracle launched version 11g of OBIEE, all components became part of a bigger picture, namely Oracle WebLogic server (formerly known as BEA WebLogic server), vital part of the Oracle Fusion Middleware stack and the official application server for Oracle's Fusion Applications.

Most of us have become somewhat acquainted/accustomed with the ins and outs of the WebLogic server over time but for many it's still a 'beast'. To overcome my own anxiety with WebLogic, I took the opportunity (thanks to Oracle University's far sighted management) to attend a Live Virtual Class (LVC) titled "Oracle WebLogic Server 11g: Administration Essentials" which is hereby officially highly recommended.

The class offers many enlightening chapters especially for those among us who have to deal closer with the WebLogic server. One particular piece of the architecture, the 'Node Manager' always left me with the strange feeling of half-knowledge. In this post, I'll share my recently acquired views on the Node Manager.

There is of course plenty of information available. In the old Oracle/BEA 8.1 docs, I dug out this little gem. Of course, you can also review the latest (12c) documentation and find the official description of Node Manager:

"Node Manager is a WebLogic Server utility that enables you to start, shut down, and restart Administration Server and Managed Server instances from a remote location"

This doesn't mean you need it to accomplish the management tasks described. Node Manager is optional but highly recommended for distributed WebLogic server environments.

The following diagram (from the official documentation) serves as a good starting point to understand how Node Manager works.



As we can see from the above diagram, a Node Manager instance must be present on each machine. The 'machine' in WebLogic is a logical construct - rather than a physical machine - associated to a WebLogic admin or managed server.

When a WLST (WebLogic Scripting Tool) script or JMX request or an administrator via the administration console issues a command (e.g start a managed server), actually the Node Manager on the respective machine will carry out the necessary tasks and subsequently start the managed server.

Apart from starting servers, they can be shut down, killed and monitored. Node Manager is especially useful for crash recovery as it can automatically restart WebLogic servers.

From an Oracle BI perspective, we find that the default OBIEE installation is already configured for Node Manager. In the WebLogic Administration Console, we find that every server is associated with a machine.

screenshot from OBIEE 11.1.1.3, hence two servers...
When you investigate the machine configuration, you find that it contains the information for the node manager associated with the machine.


In the example above, the machine named AHANSAL-LAP is associated with a node manager listening on the same physical machine on port 9556.

On Windows, the Node Manager is often preconfigured as a service or at least a start menu shortcut, so it's fairly easy to start manually or automatically at system boot. On UNIX or LINUX systems, an administrator would have to take care of shell scripts to accomplish an automated startup of node manager.

At startup, node manager reads (among other files) the nodemanager.properties and nodemanager.domains files from the /common/nodemanager directory. You can tweak the parameters in the nodemanager.properties file (carefully) to control the node manager instance.

Finally, you should know that (especially on simple environments such as dev or test) you don't need Node Manager running. You can still start, stop or monitor your WebLogic servers using shell scripts or WLST.

have a nice day

@lex

No comments: