Tuesday, April 2, 2013

Convert to windows serivice

OBIEE 11.1.1 - How to Install Windows Services For OBIEE 11g AdminServer And BI Managed Server



Following Fusion Middleware 11g components are configured by default as MS Windows Services:
Weblogic Node Manager

(configured as a MS Windows Service if Custom Install route is chosen when installingWeblogic)
FMW 11g Process Manager (OPMN)

(installed as a MS Windows Service if a System Component Instance is configured) 

This article shows how to install the WebLogic AdminServer and BI Managed Server as MS Windows Service for the OBIEE 11g installation.

Pre-requistes: Make sure to define two environment variables below:
1. User Variables
Variable Name : BI_ORACLE_HOME
Variable Value : D:\MIDDLEWAREHOME\Oracle_BI1 (e.g.)

2.System Variables
Variable Name : BI_ORACLE_HOME
Variable Value : D:\MIDDLEWAREHOME\Oracle_BI1 (e.g.)

a. For Administration Server

Note: If you install OBIEE 11g version 11.1.1.5 / 11.1.1.6 with the Simple Install type, then you will only have an AdminServer and not a BI Managed Server; therefore, the Managed Server section would not apply in that specific version and installation type.

1. Configure the boot.properties to create an encrypted method to automatically pass the username and password

Create a text file in the location:

Note: With OBIEE 11.1.1.5 / 11.1.1.6, if you have used the Start BI Services from the menu, then it would have automatically created a boot.properties file the first time it was invoke.


%middleware_home%\user_projects\domains\bifoundation_domain\servers\AdminServer\security\boot.properties
For example, if the middleware_home is c:\BI11g, then the boot properties needs to be here: 

C:\BI11g\user_projects\domains\bifoundation_domain\servers\AdminServer\security\boot.properties

Add the following lines:

username=[the Administrator username created during install, e.g weblogic]
password=[the weblogic username password e.g welcome1]


Note: the above credentials are the same as the one provided when the AdminServeris started from Command line.


Do not use or leave the brackets [ ] in the file. They are only used to show what should be entered.
As soon as you start the Admin Server the username and password values in this file will be encrypted


2. Create a command script called installAdmServer_Service.cmd.

Open a text file and input the following lines [edit for your install]:


echo off
SETLOCAL
set DOMAIN_NAME=bifoundation_domain
set USERDOMAIN_HOME=C:\BI11g\user_projects\domains\bifoundation_domain
set SERVER_NAME=AdminServer
set PRODUCTION_MODE=true
call "C:\BI11g\user_projects\domains\bifoundation_domain\bin\setDomainEnv.cmd"
call "C:\BI11g\wlserver_10.3\server\bin\installSvc.cmd"
ENDLOCAL


Please note that the middleware home values need to be specific to your install


3. For troubleshooting / debugging purposes it is helpful to redirect standard out and error to a text file.


Although most information is captured in the AdminServer server log files, you will not see all standard out and error when the server is started via a MS Windows Service (unlike when you start an AdminServer in console modefrom the command prompt using startWebLogic.cmd). To redirect standard out to a text file, backup and editinstallSvc.cmd file and change the line at the bottom of the file so it includes the -logparameter. For example:


"%WL_HOME%\server\bin\beasvc" -install
-svcname:"%DOMAIN_NAME%_%SERVER_NAME%"
-javahome:"%JAVA_HOME%" -execdir:"%USERDOMAIN_HOME%"
-extrapath:"%WL_HOME%\server\bin" -password:"%WLS_PW%"
-cmdline:%CMDLINE%
-log:"[middleware_home]\user_projects\domains\bifoundation_domain\servers\AdminServer\AdminServer-stdout.txt" 4. Next, run "installAdmServer_Service.cmd" and the service should be installed, it will have a name like "beasvc %DOMAIN_NAME%_%SERVER_NAME%" (e.g. beasvc bifoundation_domain_AdminServer)


The Service "Startup Type" will be 'Automatic'. Just like any other MS Windows Service you can change the 'Startup Type' to 'Manual'.

Start the Service. The Service will come back fairly quickly to say it is started. The actual time taken for AdminServer to start and reach a state of 'RUNNING' will be longer - perhaps two or three minutes. The state of the server can be monitored by reviewing thestdout txt file.

Notes:
An alternative to the boot.properties approach to specifying the Admin Server weblogicusername / password is to add the following environment variables to your wrapper cmdscript - installAdmServer_Service.cmd


set WLS_USER=[user]
set WLS_PW=[password]


Note: Do not use or leave the brackets [ ] in the file. They are only used to show what should be entered.


To quote the documentation, "The beasvc utility encrypts the login credentials and stores them in the Windows registry."
This is one of two possible methods for avoiding the username/password prompt when a server instance starts. The disadvantage to this method is that changing the username or password for the server instance requires you to delete the Windows service and set up a new one with the new username and password. Instead of this method, you can use a boot identity file. With a boot identity file, you can change the login credentials without needing to modify the Windows service.


b. For Managed Server bi_server1


1. Configure the boot.properties to create an encrypted method to automatically pass the username and password

Create a text file in the location:

%middleware_home%\user_projects\domains\bifoundation_domain\servers\bi_server1\security\boot.properties


For example:

C:\BI11g\user_projects\domains\bifoundation_domain\servers\bi_server1

where the BI11g is your middleware home.

Add the following lines:
username=[the Administrator username created during install, e.g weblogic]
password=[the weblogic username password e.g welcome1]


Note: the above credentials are the same as the one provided when the AdminServer is started from Command line.
As soon as you start the BI Managed Server the username and password values in this file will be encrypted.


The alternative approach - like for AdminServer - is to specify WLS_USER and WLS_PW in the wrapper cmd script. See next point


2. Create a command script called installManagedSrvr_Service.cmd which has lines like:


SETLOCAL
set DOMAIN_NAME=bifoundation_domain
set USERDOMAIN_HOME=C:\BI11g\user_projects\domains\bifoundation_domain
set SERVER_NAME=bi_server1
set PRODUCTION_MODE=true
set ADMIN_URL=http://10.220.19.108:7001
call "C:\BI11g\user_projects\domains\bifoundation_domain\bin\setDomainEnv.cmd"
call "C:\BI11g\wlserver_10.3\server\bin\installSvc.cmd"
ENDLOCAL


Notes:


o Before running, change the -log parameter in the installSvc.cmd file to the new location. Fore example:

-log:"[middleware_home]\user_projects\domains\bifoundation_domain\servers\bi_server1\bi_server1-stdout.txt"


o The ADMIN_URL value should reference the AdminServer hostname and listen port


o The SERVER_NAME value is case sensitive. For example, if you are creating a MS Windows service for a different managed server such as 'wls_ods1' then the value needs to match the case of the server name otherwise the startup of the server via the MS Windows service will fail.


o Be careful that there are no trailing spaces after each line in the command file - trailing spaces will cause the managed server to fail at startup. For example a trailing space in the ADMIN_URL value will result in the error

<19-Jan-2010 11:37:58 o'clock GMT> <Error> <EmbeddedLDAP> <BEA-171524> <Cannot determine the Listen address for the Admin server


3. Now run "installManagedSrvr_Service.cmd". The Service should be installed, it will have a name like "beasvc %DOMAIN_NAME%_%SERVER_NAME%" (e.g. - beasvc bifoundation_domain_bi_server1)

The Service "Startup Type" will be 'Automatic'. Just like any other MS Windows Service you can change the 'Startup Type' to 'Manual'.

Start the Service. The Service will come back fairly quickly to say it is started. The actual time taken for the managed server to start and reach a state of 'RUNNING' will be longer - perhaps two or three minutes. The state of the server can be monitored by reviewing thestdout txt file.


4. Ensure you make the managed Server to a manual startup so this service can be started after the AdminServer is started.


5. You may choose to start the managed server from the AdminServer instead of from creating the MS Windows service which is the recommended practice.


6. First start the Node Manager, Admin Server and the Managed Server in this Order.


You can start the BI Server components either from FMW Control or from the OPMN Command line.


Note: If you start the servers as a service, then any parameters, such as JVM parameters need to be modified in the registry at:
If you want to view these parameters, open up the MS Windows Registry Editor (regedit) and navigate to:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\beasvc <your domain>_<managed server name>\Parameters

Be sure and double-check the parameter settings such as the the path for the JVM, the hostname and the port; otherwise the service may not start properly

Otherwise, the parameters can be modified in the command shell scripts

See the WebLogic documentation for installing the NodeManager as a service.


Important Note: If you get ":java.lang.OutOfMemoryError: PermGen space" error in log while starting the service then try to increase the following heap sizes in registry:

CmdLine the “-server -Xms1024m -Xmx1024m -XX:MaxPermSize=512m …
…..”

Thanks,
Satya Ranki Reddy

No comments:

Post a Comment