When OBIEE 11g is installed on a Windows server the Node Manager and Process Manager are setup as Windows services, however the Admin and BI Servers are not. This blog shows how to create services for the Admin and BI Server and configure all four services to start in the correct order.
References to the OBI_HOME below should point to the middleware home directory for OBIEE. e.g. c:\app\obiee. Below this exist the directories: instance, Oracle_BI1, user_projects etc…
Confirm boot.properties files exist
The boot.properties files contain the encrypted user-id and password for starting and stopping the services. Unless they have been removed there should be two of these files under the following directories once OBIEE 11g has been stopped and restarted following the installation:
Where OBI_HOME is the OBIEE middleware installation home directory and bi_server1 is the name of the BI Managed Service. bi_server1 is the default name, but may have been altered during the installation.
If the files do not exist, stop and restart OBIEE. If they still do not exist then investigate why before continuing.
Check the BI_ORACLE_HOME environment variable is set.
Look in the server Environment variables for BI_ORACLE_HOME (Control Panel -> System -> Advanced System Settings’ -> ‘Advanced’ tab -> Environment Variables -> System variables.
If it is not there, add it.
Edit the Service installation command file – installSvc.cmd
We need to do four changes to this file.
- Create the OBI_HOME variable
- Name the services Oracle_XXXX
- Specify a log file for each of the Admin and BI Servers.
- Implement a solution to the Windows issue of command lines being no longer than 2k.
This file is located under %OBI_HOME%\wlserver_10.3\server\bin.
Near the top of the file, after the line that sets WL_HOME add a new line:
Now find the line near the bottom which starts "%WL_HOME%\server\bin\beasvc" –install….
Change the svcname parameter from:
Then at the end of the line add a new log parameter:
Now locate the line set CLASSPATH=%WEBLOGIC_CLASSPATH%;%CLASSPATH% and add the following line underneath it:
@echo %CLASSPATH% > %WL_HOME%\server\bin\classpath.txt
This outputs the CLASSPATH variable to a text file.
Just below this there are two lines that start set CMDLINE=. Each of these lines refers to \"%CLASSPATH%\", so change this to point to the text file instead:
Change: -classpath \"%CLASSPATH%\"
To: -classpath @%WL_HOME%\server\bin\classpath.txt
Now save the file.
Edit the commEnv.cmd file
We need to do five changes to this file.
- Add an additional jar file to the classpath variables
- Check the JAVA_HOME variable
- Check the JAVA_VENDOR variable
- Check the PRODUCTION_MODE variable
- Set the java MEM_ARGS variable
This file is located under %OBI_HOME%\wlserver_10.3\common\bin.
Locate the set WEBLOGIC_CLASSPATH and set FMWCONFIG_CLASSPATH commands and add the following to the end:
Ensure the JAVA_HOME path is pointing at the OBIEE version:
For example: set JAVA_HOME=C:\app\obiee\Oracle_BI1\jdk
Ensure that the JAVA_VENDOR variable is set to sun:
Set the PRODUCTION_MODE variable to true
Locate the :sun_prod_mode label, then in the set MEM_ARGS command change all three memory parameters to 512m:
set MEM_ARGS=-Xms512m –Xmx512m -XX:MaxPermSize=512m -XX:+UseSpinning
There is some scope for editing these memory settings. The above settings work fine, but can be increased if needed.
Create the Admin Server install script.
We are going to create a new script which will create the windows service for the Admin Server. In the %OBI_HOME%\wlserver_10.3\server\bin directory create a new file called installAdminServer.cmd and paste in the code below.
set SERVER_MEM_ARGS=-Xms256m -Xmx1024m -XX:MaxPermSize=512m -XX:-UseSSE42Intrinsics
Save and run it. Note that it must be run ‘as administrator’. Either right click on it in Explorer and select the ‘Run as administrator’ option:
Or open a command window as administrator, change to the directory and run it manually:
On both cases if prompted by the user access control, select yes to continue.
The script should end without errors:
Now if you look in Services you should see the new Admin service called ‘Oracle_bifoundation_domain_Adminserver’:
Create the BI Server install script.
We now repeat this to for the script to create the windows service for the BI Server. In the %OBI_HOME%\wlserver_10.3\server\bin directory create a new file called installBIServer.cmd and paste in the code below.
@rem set SERVER_MEM_ARGS=-Xms256m -Xmx2048m -XX:MaxPermSize=512m
Note: the line set SERVER_NAME=bi_server1 may need changing if your managed service has a different name.
Now save and run as administrator as before.
Again look in Services (refresh the view) to see the new service, Oracle_bifoundation_bi_server1:
Create Groups & Dependencies in the Registry
To ensure the OBIEE service start in the correct order we need to create a group in the windows registry for each service. We then assign each of the four services to these groups and place dependencies on the start order.
Open the Registry Editor (regedit)
Expand and locate HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder:
Double click on the ‘List’ entry and add the following four groups to the end of the value:
OBI Node Manager
OBI Admin Server
OBI Managed Server
Click ok to Save.
Now locate the Weblogic Node Manager entry under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services - in this case called ‘Oracle WebLogic NodeManager (c_app_obiee_wlserver_10.3)’:
Right click on the entry and select New -> String Value:
Enter the name ‘Group’. Double click on Group and enter the OBI Node Manager group name created above:
Now repeat this for the other three entries:
“Oracle_bifoundation_domain_AdminServer” with the Group value “OBI Admin Server”.
“Oracle_bifoundation_domain_bi_server1” with the Group value “OBI Managed Server”.
“OracleProcessManager_instance1” with the Group value “OBI OPMN”.
Now we need to setup the dependences to ensure each service wait’s until the previous services have started before starting.
Right click on the Oracle_bifoundation_domain_AdminServer entry and select ‘New’ -> ‘Multi-String value’. Give it the name DependOnService. Edit the value and enter the name of the node manager service:
Now create a DependOnService value for the Oracle_bifoundation_domain_bi_server1 and give it the two values:
Oracle WebLogic NodeManager (c_app_obiee_wlserver_10.3)
Finally create the DependOnService value for the OracleProcessManager_instance1 with the three values:
Oracle WebLogic NodeManager (c_app_obiee_wlserver_10.3)
Check the Services.
Open up the Services window and scroll down to find the four OBIEE services. You need to make sure all four are set to Automatic startup.
The Oracle Process Manager will probably be set to Manual so needs changing, the others should already be set to Automatic.
Restart the Server.
Now shutdown and restart the Server.
When the server boots all four services should start in the correct order, however be warned that they will take just as long to start as they do when using the standard ‘Start BI Services’ command, however being services there will be no command windows and the services will stay up when you log off.
The Services screen is a little confusing because all four services will report a status of ‘Started’ even though they are still loading in the back ground.
You can check the log files for the Admin and BI Managed services in their respective home directories:
If the services fail to start you will need to check the logs and attempt to work out why. Tweaking the memory settings in the files edited above may help.
Whatever you need to do, if you need to re-run either the installAdminServer.cmd or installBIServer.cmd scripts you will need to delete the existing windows services first (otherwise the scripts will just fail – they won’t update the existing services)
To do this first open the Services window and check that the services are ‘Stopped’ – it’s entirely possible that the Services could be Started but OBIEE still doesn’t work. If they are Started then manually stop them.
Then open a command window “as Administrator” and run the following commands:
sc delete Oracle_bifoundation_domain_AdminServer
sc delete Oracle_bifoundation_domain_bi_server1
These delete the services, removing them from the Services window (select Action -> Refresh).