Sunday, January 20, 2013

[BI EE11g] – Managing Host Name Changes


One common requirement when it comes to any software is in properly handling the network, ip and host name related changes. For example, moving servers from one domain to another, or cloning instances can all trigger these network related changes. BI EE 10g can quite easily handle the host-name related changes. But in the case of BI EE 11g as there are a lot of components involved, making a change to the host name requires more effort. In today’s blog post, lets look at how we can go about getting BI EE 11g to work when the Host Name of the machine changes post install & configuration.
BI EE 11g has a lot of inter-dependent components. Each component interacts with the other over the network i.e. using host names. Listed below are the components at a high level in 11g, which require changes whenever the host name changes.
1. Admin Server
2. Managed Server
3. Node Manager
4. RCU Schemas Connections
5. System Components
6. Hardcoded Host name entries in Repository, JDBC Connections etc
7. RCU Database Listener
This blog post assumes that you have a loopback adapter installed and also wherever possible during the install, you have only used the host name instead of ip’s directly. Currently this covers a non-clustered installation but the procedure for making host name changes to multiple clustered servers should more or less remain the same.
In the example that i am going to cover, which is where BI EE 11g is installed and currently running. To demonstrate the host name change, i am going to rename the server to devbiee as shown below.
In the case of linux, you will have to update the /etc/hosts file to reflect the host name change. After the change restart the machine so that OS picks up the change. The next step is to ensure that, if you have the RCU database on the same machine, the listener is properly listening on the correct host name. So make the following changes to listener.ora and tnsnames.ora (for testing).
After the above changes, restart the listener and ensure that you are able to connect to the database through the tnsnames entry (This post assumes a single instance Oracle database. Also this post will not cover the changes to get the database control working).
After getting the database connectivity to work, the next step is to start up the Admin Server. Unlike Managed Server, Admin Server will run even with a wrong host name. So, start up the Admin Server by running startWeblogic.cmd script in {Middleware_Home}\user_projects\domains\bifoundation_domain folder. Once the Admin Server is started, navigate to the Weblogic Console. Under the bifoundation_domain > Environment link click on the Machines.
After Locking & Editing the Admin Console, add a new machine with the new host name devbiee as shown below.
So, you should see both the old host name and the new host name under the machines list.
Activate the Changes. Now, in the same Machines page, click on the devbiee host name. Navigate to the Node Manager tab. In the Listen Address, enter the new host name devbiee.
Save & Activate the changes. Now, under bifoundation_domain > Environments link, click on the Servers link.
Click on the bi_server1 managed server and change the machine name to devbiee from the older host name (This will get activated only after you Lock & Edit the Admin Console) in the Configuration > General tab.
Save & Activate the Changes. Now you can notice that the Managed Server will be pointing to the new Host name as shown below
We will still not be able to start the Managed Server as the Node Manager will be pointing to the older host name. To overcome this, we need to first remove the existing Node Manager service by running the following 2 scripts from command prompt.
1. setWLSEnv.cmd
2. uninstallNodeMgrSvc.cmd
These 2 scripts are available at {Middleware_Home}\wlserver_10.3\server\bin directory.
Now edit the installNodeMgrSvc.cmd script and uncomment the NODEMGR_HOST variable setting. Make this to point to the new host name devbiee.
Save the file and run this script from command line. This will install the Node Manager service with the updated host name. Start the Node Manager Service manually now.
After starting the service, navigate back to the Admin Console and click on bifoundation_domain. From the Control tab, start the bi_server1 managed server.
Ensure that the Managed Server goes into RUNNING state before continuing on to the next step.
Now we have the Managed Server completely running on the new host name. But we still have the Admin Server running on the older host name. Though it works without any change, ideally we would like to change that as well. Unfortunately we cannot change it directly from the console (makes sense as the console itself is accessible only after we started the script which is tied to the hostname). To update the host name of the Admin Server, lets login to the Oracle BI Enterprise Manager (http://localhost:7001/em)
Expand the Weblogic Domain > bifoundation_domain and right click on Admin Server to navigate to the Systems MBean browser.
In this update the MachineName attribute to the new host name
Apply the changes. Now, we have the Admin Server pointing to the new host name (we have to restart for changes to be applicable – we can do that in the end). We still have the connections to RCU schemas from BI EE pointing to the older host name. To update this, login to Admin Console. Expand Services > JDBC and click on the Data Sources link.
Click on each data source(bip_datasource, mds-owsm & rtd_datasource) and update the database connection URL (Connection Pool tab) to point to the new host name devbiee.
We still have 2 more changes pending, System Components & other static files using the older host name like RPD, start scripts etc. For System Components to use the new host name, we need to basically update the biee-domain.xml file under {Middleware_Home}\user_projects\domains\bifoundation_domain\config\fmwconfig. There will be 2 entries using the older host name. Update both of them to the new host name devbiee.
Also, the communication (only in Enterprise Manager for listing the status of components) between opmnctl and the java components happen through a file called Topology.xml. This file will be present under {Middleware_Home}\user_projects\domains\bifoundation_domain\opmn. Update the older host name in this file to the new host name devbiee.
And finally, in Windows, update the StartStopServices.cmd script to point to the new host name as shown below.
After all these changes, just do a system restart, all the components will start normally but with the new host name.
In some cases, if you are using Sample App repository and also BI Publisher, then we will have to manually make the host name change within the repository and the BI Publisher JDBC connections.