Monthly Archives: April 2011

OBIEE 11g Windows Services

In 10g half your installation job is done for you; unix scripts and windows services all delivered out of the box, and pretty much working too!

In 11g you have to do the hard work yourself :(.

Firstly, you may be wondering why Oracle did not provide windows services already installed for you.  ME too!

Anyway, the point is you should create the services so that your OBIEE system stays up and running when you either log off the server, or your RDC is disconnected (normally due to IT time limits).

Now I am no Windows techie (nor Unix for that matter), so I would not know where to begin on creating a windows service (other than my friend Google).  Luckily I don’t have to, the Weblogic install includes a neat utility that does the techie bit for us, we just have to know how to call the utility.

Note that this article is based upon a real install I did last month for a client, on a Win 2008 32bit VM.  This is not just based upon a theory found in some Oracle documentation, or stealing other peoples blog postings.

Step-by-Step

The main tasks are:

  1. Stop your obiee system (of course!)
  2. Create a boot file (for the passwords)
  3. Create the command files (that will be used to create and update the services)
  4. Create the utility files (that call the Weblogic Utility.)
  5. Run the commands created in step 3.

1. Stop OBIEE 11g

This includes:

  • BI Applications
  • Weblogic Managed servers
  • Weblogic Admin Server
  • Windows services (Node manager and OPM)

2.  Boot File

In order for the services to start without user intervention then you need to store the username and password in a file on the server.  It’s a simple file with: username and password on two lines.

username=weblogic
password=mypwdhere

See example here : Shiva

3.  Command Files

The first command file create the Admin Server service, the second creates a BI Server service, and finally a batch file to update the existing Node manager service.

Admin Server Script


@rem *** Install the BI Windows services
@rem Created by:  Adrian Ward
@rem Created March 7th 2011
@rem Includes a delay tag
@rem Calls the beasvc.exe
@rem *************************************************************
@echo off
SETLOCAL
set MW_HOME=C:OracleFMW
set OPMN_PORT=9500
set wls.host=hostnamehere
set wls.admin.port=7001
set wls.mgd.port=9704
set wls.mgd.name=bi_server1
set BI_URL=http://%wls.host%:%wls.mgd.port%/analytics
set JAVA_HOME=C:OracleFMWOracle_BI1jdk
set PRODUCTION_MODE=true
set DOMAIN_HOME=%MW_HOME%user_projectsdomainsbifoundation_domain
set WLS_HOME=%MW_HOME%wlserver_10.3
set INSTANCE_HOME=%MW_HOME%instancesinstance1
set ORACLE_BI_HOME=%MW_HOME%Oracle_BI1
set ANT_HOME=%MW_HOME%modulesorg.apache.ant_1.7.1
set DOMAIN_NAME=bifoundation_domain
set USERDOMAIN_HOME=%MW_HOME%user_projectsdomainsbifoundation_domain
set SERVER_NAME=AdminServer
Call "C:OracleFMWuser_projectsdomainsbifoundation_domainbinsetDomainEnv.cmd"
Call "C:OracleFMWwlserver_10.3serverbininstallSvc_Admin.cmd"
ENDLOCAL

The above script sets the variables you need, then calls a couple of other command files (see below what they do)

BI Server 1

@rem *** Install the BI Windows services
@rem Created by:  Adrian Ward
@rem Created March 7th 2011
@rem Includes a delay tag
@rem Calls the beasvc.exe
@rem ***************************************************************

@echo off
SETLOCAL

set MW_HOME=C:OracleFMW
set JAVA_HOME=C:OracleFMWOracle_BI1jdk
set PRODUCTION_MODE=true
set DOMAIN_HOME=%MW_HOME%user_projectsdomainsbifoundation_domain
set WLS_HOME=%MW_HOME%wlserver_10.3
set INSTANCE_HOME=%MW_HOME%instancesinstance1
set ORACLE_BI_HOME=%MW_HOME%Oracle_BI1
set ANT_HOME=%MW_HOME%modulesorg.apache.ant_1.7.1
set DOMAIN_NAME=bifoundation_domain
set USERDOMAIN_HOME=C:OracleFMWuser_projectsdomainsbifoundation_domain
set SERVER_NAME=bi_server1
set ADMIN_URL=http://localhost:7001

Call "C:OracleFMWuser_projectsdomainsbifoundation_domainbinsetDomainEnv.cmd"
Call "C:OracleFMWwlserver_10.3serverbininstallSvc_BIServer.cmd"

ENDLOCAL

Again this command file sets the variables for managed BI Server service, then calls the command file which calls the create windows service utility.

Update Service Batch Command

In order to run all the services, and in the right order, we need to update the existing service (i.e. the one that Oracle did provide).  This is done by using the sc command (yes my friend Google helped here!).

sc config OracleProcessManager_instance1 depend= "Oracle bi_server1" start= auto

4.  Create Utility Files

There is a command file already in place that calls the utility that create the service (called InstallSvc.cmd).  Some documents and blogs suggest that you update this existing file, run it for the Admin Server service, then update the file again and run it for the BI Server service.  I find it’s much easier to create the exact files you need from a copy of the existing Svc command file, then you can package them all up and can be run by the Sys admin people in any installation, including production.

So, from the above code listings you can se that we call installSvc_Admin.cmd and installSvc_BIServer.cmd.  These are very similar except for the command line which has a subtle difference in the options.  This differences are only in the last section where it calls the beasvc utility.

So, take a copy of the existing InstallSvc.cmd and update the last section as below:

installSvc_Admin.cmd

rem *** Install the service
“%WL_HOME%serverbinbeasvc” -install -svcname:”Oracle AdminServer” -depend:”Oracle WebLogic NodeManager (C_Oracle_FMW_wlserver_10.3)” -delay:240000 -javahome:”%JAVA_HOME%” -execdir:”%USERDOMAIN_HOME%” -maxconnectretries:”%MAX_CONNECT_RETRIES%” -host:”%HOST%” -port:”%PORT%” -extrapath:”%EXTRAPATH%” -password:”%WLS_PW%” -cmdline:%CMDLINE% -log:”CC:OracleFMWuser_projectsdomainsbifoundation_domainserversAdminServerlogswinsrvc_AdminServer-stdout.txt”

installSvc_BIServer.cmd

rem *** Install the service
“%WL_HOME%serverbinbeasvc” -install -svcname:”Oracle bi_server1″ -depend:”Oracle 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:”C:OracleFMWuser_projectsdomainsbifoundation_domainserversbi_server1logswinsrvc_bi_server1-stdout.txt”

Notice that the simple differences are in the -depend, – svcname, -log and -delay options.

Now you have created the files you can call them and your wndows services will appear!

Good luck.

Free stuff from Oracle

The 11g Express Database is finally out in Beta:

http://www.oracle.com/technetwork/database/express-edition/11gxe-beta-download-302519.html?msgid=3-3822972261

And the free SQL Developer is in version 3 – time to upgrade?

http://www.oracle.com/technetwork/developer-tools/sql-developer/overview/index.html?msgid=3-3822972261

They’re doing it again

Another year, and another set of interviews, for another project, but still the same poor candidates.
If you want a job on an OBIEE project, as an OBIEE developer then you should be able to answer simple questions about the BI Server, The repository and using Answers.

AM I asking TOO much?

Several recent interviewees, who claimed to be experts in OBIEE could not answer the following questions:

– How do you write a report based on two Subject Areas?
– How do you implement row level security?
– How do you put a report Chart on a page, and the same reports pivot table on another page.

If you cannot do the above, then please do not pretend you know OBIEE

Adrian.