Wednesday, February 8, 2012

Auto Start OBIEE 11g using Windows Services


After installing OBIEE 11g in a windows environment,the server is stopped and started by using command windows.  This works fine in a Development or Testingenvironment, but in Production, this can cause serious issues. If server maintenanceis preformed or the server is restarted, OBIEE will not automatically come backup. The only way to start a windows program on start, without logging in, is byusing windows services. The following guide is set of steps we used to createand install OBIEE 11g using windows services. After the services are installed,they must be configured to start automatically after each other with delayedstartup to ensure that when one service completes, the next will start afterit. Please feel free to leave any questions or comments.


Set the following environment variables
System variable JAVA_HOME = D:\OBI11g\Oracle_BI1\jdk
System variable BI_ORACLE_HOME = D:\OBI11g\Oracle_BI1
installSvc.cmd
Take a backup of ‘installSvc.cmd’ located at ‘D:\OBI11g\wlserver_10.3\server\bin
Add the following to ‘installSvc.cmd’:
set JAVA_VM=-server
set MEM_ARGS=-Xms512m -Xmx512m -XX:MaxPermSize=512m-XX:+UseSpinning

AdministrationServer
  1. Create a command script called installAdmServer_Service.cmd.

    Open a text file and input the following lines [edit for your install]:
SETLOCAL
setDOMAIN_NAME=bifoundation_domain
setUSERDOMAIN_HOME=D:\OBI11g\user_projects\domains\bifoundation_domain
setSERVER_NAME=AdminServer
setPRODUCTION_MODE=true
set OPMN_PORT=9500
cd %USERDOMAIN_HOME%
call"D:\OBI11g\user_projects\domains\bifoundation_domain\bin\setDomainEnv.cmd"
call"D:\OBI11g\wlserver_10.3\server\bin\installSvc.cmd"
ENDLOCAL


2.     Add -delay:120000  in the installSvc.cmd file to the line at thebottom.
ForExample:
rem*** Install the service
"%WL_HOME%\server\bin\beasvc"-install -svcname:"beasvc %DOMAIN_NAME%_%SERVER_NAME%"  -delay:120000 -javahome:"%JAVA_HOME%"-execdir:"%USERDOMAIN_HOME%"-maxconnectretries:"%MAX_CONNECT_RETRIES%" -host:"%HOST%"-port:"%PORT%" -extrapath:"%EXTRAPATH%" -password:"%WLS_PW%"-cmdline:%CMDLINE%-log:"D:\OBI11g\user_projects\domains\bifoundation_domain\servers\AdminServer\AdminServer-stdout.txt"
  1. 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 mode from the command prompt using startWebLogic.cmd). To redirect standard out to a text file, backup and edit installSvc.cmd file and change the line at the bottom of the file so it includes the -log parameter. For example:
"%WL_HOME%\server\bin\beasvc"-install -svcname:"beasvc %DOMAIN_NAME%_%SERVER_NAME%"  -delay:120000-javahome:"%JAVA_HOME%" -execdir:"%USERDOMAIN_HOME%"-maxconnectretries:"%MAX_CONNECT_RETRIES%" -host:"%HOST%"-port:"%PORT%" -extrapath:"%EXTRAPATH%"-password:"%WLS_PW%" -cmdline:%CMDLINE% -log:"D:\OBI11g\user_projects\domains\bifoundation_domain\servers\AdminServer\AdminServer-stdout.txt"
  1. 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 otherMS Windows Service you can change the 'Startup Type' to 'Manual'.

For Managed Server bi_server1
  1. Create a command script called installBIServer_Service.cmd which has lines like:
SETLOCAL
setDOMAIN_NAME=bifoundation_domain
setUSERDOMAIN_HOME=D:\OBI11g\user_projects\domains\bifoundation_domain
setSERVER_NAME=bi_server1
setJAVA_HOME=D:\OBI11g\Oracle_BI1\jdk
setPRODUCTION_MODE=true
setADMIN_URL=http://localhost:7001
set OPMN_PORT=9500
setBI_ORACLE_HOME=D:\OBI11g\Oracle_BI1
cd %USERDOMAIN_HOME%
call"D:\OBI11g\user_projects\domains\bifoundation_domain\bin\setDomainEnv.cmd"
call"D:\OBI11g\wlserver_10.3\server\bin\installSvc.cmd"
ENDLOCAL
Notes:
    • Before running, add
-depend:"beasvcbifoundation_domain_AdminServer" -delay:180000
To thelast line at the bottom of the installSvc.cmd. For Example:
rem ***Install the service
"%WL_HOME%\server\bin\beasvc"-install -svcname:"beasvc %DOMAIN_NAME%_%SERVER_NAME%" -depend:"beasvcbifoundation_domain_AdminServer" -delay:180000-javahome:"%JAVA_HOME%" -execdir:"%USERDOMAIN_HOME%"-maxconnectretries:"%MAX_CONNECT_RETRIES%" -host:"%HOST%"-port:"%PORT%" -extrapath:"%EXTRAPATH%"-password:"%WLS_PW%" -cmdline:%CMDLINE% -log:"D:\OBI11g\user_projects\domains\bifoundation_domain\servers\AdminServer\bi_Server1-stdout.txt"
    • Before running, change the -log parameter in the installSvc.cmd file to the new location. For example:

      "%WL_HOME%\server\bin\beasvc" -install -svcname:"beasvc %DOMAIN_NAME%_%SERVER_NAME%" -depend:"beasvc bifoundation_domain_AdminServer" -delay:180000 -javahome:"%JAVA_HOME%" -execdir:"%USERDOMAIN_HOME%" -maxconnectretries:"%MAX_CONNECT_RETRIES%" -host:"%HOST%" -port:"%PORT%" -extrapath:"%EXTRAPATH%" -password:"%WLS_PW%" -cmdline:%CMDLINE% -log:"D:\OBI11g\user_projects\domains\bifoundation_domain\servers\AdminServer\bi_Server1-stdout.txt"
    • The ADMIN_URL value should reference the AdminServer hostname and listen port
    • 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.
    • 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
  1. Now run "installBIServer_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'.

OBIEE Services Dependencies
The servicesshould be started in the order below:
1)     OracleWebLogic NodeManager (D_OBI11g_wlserver_10.3)
2)     beasvcbifoundation_domain_AdminServer
3)   beasvcbifoundation_domain_bi_server1
4)   OracleProcessManager_instance1
SettingDependencies:
In RegistryEditor navigate to HKEY_LOCALMACHINE->SYSTEM->CurrentControlSet->service
For OracleProcessManager_instance1 Serviceset
‘DependOnService’= beasvc bifoundation_domain_bi_server1
For beasvc bifoundation_domain_bi_server1 Serviceset
‘DependOnService’= beasvc bifoundation_domain_AdminServer
Note: This should already be set as wecreated the dependency while creating the service
For beasvc bifoundation_domain_AdminServer Serviceset
‘DependOnService’= Oracle WebLogic NodeManager (D_OBI11g_wlserver_10.3)
Note: The startup type for all the aboveservices should be ‘Manual’
Starting OBIEE Services after the Database is Up andRunning
The Admin ServerService(beasvc bifoundation_domain_AdminServer) and Managed Server Service(beasvcbifoundation_domain_bi_server1) requires the database to be up and running forthem to start properly.
In order forOBIEE services to start after the database is up and running, we create a batchfile and set this as Startup Scripts to delay start OBIEE services after systemstartup.
Batch File:
NET STOP"OracleProcessManager_instance1"
TIMEOUT /T 300/NOBREAK
NET START"OracleProcessManager_instance1"
Setting batchfile as Startup Script:
Run-> gpedit.msc



In Local GroupPolicy Editor:
ComputerConfiguration->Windows Settings->Scripts (Startup/Shutdown)->Startup
 Add the Batchfile as startup script.


1 comment:

  1. Hi,

    We have developed a new gen developer friendly BI framework with some extremely unique features. Would like to give you early access & love to hear your opinion. Please do let me know of how to reach out to you. Would be launching product in 2 weeks from now.
    Also could you please share your email details for further communication.

    Regards,
    Anugraha

    ReplyDelete