Monday, May 27, 2013

uninstalling OBIEE

updated: 13 Feb 2014

Includes information about version 11.1.1.7 and Windows registry entries.

Summary of de-installation from Oracle docs.

  1. Run the deinstall script and select the Deinstall instances managed by a WebLogic domain option.
  2. Stop all Oracle Business Intelligence processes and servers, including all OPMNcontrolled components and JEE components.
  3. Drop the Metadata Services (MDS) and Business Intelligence Platform (BIPLATFORM) schemas using RCU.
  4. Run the deinstall script and select the Deinstall the Oracle home option.
  5. Deinstall the Oracle Common home manually or by running the deinstall script that it contains.
  6. Use the Oracle WebLogic Server uninstaller to uninstall WebLogic Server.
  7. Remove the Oracle home (if necessary).
  8. Remove the Middleware home and any other homes (Domain home, Applications home, and Instance home) that might have been installed outside of the

Deinstall weblogic server managed instances:

Run the deinstall script and select the Deinstall instances managed by a WebLogic domain option. Make sure OBIEE services are running, before you proceed.

Go to $ORACLE_HOME\oui\bin (e.g. D:\OBIEE11g\Oracle_BI1\oui\bin ) and execute this command

D:\OBIEE11g\Oracle_BI1\oui\bin>setup –deinstall

image

image

image

image

uninstallOBIEE01

uninstallOBIEE02

uninstallOBIEE03

uninstallOBIEE04

Stop all OBIEE services.

Go to http://localhost:7001/em - > Business Intelligence -> core application and stop all components.

Go to http://localhost:7001/console

Domain structure -> deployments link -> control tab

Select all components and stop them

image

Customize the table to display all process (all 61 processes) and then select all. It will stop the processes and exclude the libraries. This is ok.

Note: On Windows machine you can stop all services from the services control panel.

Drop the Metadata Services (MDS) and Business Intelligence Platform (BIPLATFORM) schemas using RCU.

Run RCU.bat file from RCU_HOME\bin (e.g. F:\OBIEEInstall\rcuHome\BIN ).

image

image

image

image

image

image

image

image

image

Remove the oracle home (oracle BI HOME).

Run the deinstall script and select the Deinstall the Oracle home option.

Got to D:\OBIEE11g\Oracle_BI1\oui\bin and run setup.exe –deinstall

 

image

image

image

image

image

Deinstall the Oracle Common home

Go to MW_HOME\oracle_common\oui\bin   (e.g. D:\OBIEE11g\oracle_common\oui\bin )

Run

setup.exe -deinstall -jreLoc full_path_of_jre_or_jdk

specify the JDK directory that was created by Oracle Business Intelligence 11g Installer in the Middleware home. (in my case D:\OBIEE11g\jdk160_24)

D:\OBIEE11g\oracle_common\oui\bin>setup.exe -deinstall -jreLoc D:\OBIEE11g\jdk16

0_24

note:

  1. You can specify any compatible jdk path. But the uninstall utility has a problem with spaces in the file path,  therefore ensure that jdk is installed in a path without spaces.
  2. I noticed while uninstalling 11.1.1.7.0 the jdk directory is deleted by the uninstaller. In such cases you can install a compatible jdk into a directory without spaces and specify this new path in the deinstall command above.

image

image

image

image

uninstall WebLogic Server

if you are uninstalling on Windows,

run uninstallNodeMgrSvc.cmd from the following directory in your WebLogic Home:

WL_HOME\server\bin\uninstallNodeMgrSvc.cmd  (for example : D:\OBIEE11g\wlserver_10.3\server\bin\uninstallNodeMgrSvc.cmd )

Open a command prompt and go to Middleware Home -> utils –> uninstall, and execute “uninstall  -mode=console”

D:\OBIEE11g\wlserver_10.3\server\bin>cd D:\OBIEE11g\utils\uninstall

D:\OBIEE11g\utils\uninstall>uninstall -mode=console

image

image

image

Note: If you get a message like “The system cannot find the path specified.”, it means the uninstaller cannot find the path to the java home that is set in the uninstall.cmd file. you should edit this file to make it point to the new jdk home.

update for uninstall java home error

Manually delete the MW_HOME (middleware home) directory. On Windows you may want to use a program like ccleaner to clean up your system and reboot.

Cleaning up the Windows Registry Entries:

  • It is advisable to make registry backup before you do this.
  • go to HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI and delete the stale and unnecessary odbc entries (like coreapplication_OH1974671976).
  • also delete similar entries in HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources
  • listed below the key HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI delete all driver entries that were installed by OBIEE.
  • After deleting the entries, you can verify by checking that these entries are no longer listed in the system DSN tab of the ODBC dialog box(which can be opened from the Windows control panel)

Monday, May 20, 2013

OBIEE 11g important paths / locations

Here is a list of important OBIEE file paths.

component path example
middleware home MW_HOME the root installation directory of OBIEE D:\OBIEE11g
oracle home (bi) ORACLE_HOME $MW_HOME\Oracle_BI1 D:\OBIEE11g\Oracle_BI1
instance home INSTANCE_HOME $MW_HOME\instances\instance1 D:\OBIEE11g\instances\instance1
domain home DOMAIN_HOME $MW_HOME\user_projects\domains\bifoundation_domain D:\OBIEE11g\user_projects\domains\bifoundation_domain
weblogic home WEBLOGIC_HOME $MW_HOME\wlserver_10.3 D:\OBIEE11g\wlserver_10.3

rpd location:

$INSTANCE_HOME\bifoundation\OracleBIServerComponent\coreapplication_obis1\repository

Catalog location:

$INSTANCE_HOME\bifoundation\OracleBIPresentationServicesComponent\coreapplication_obips1\catalog

custom message XML files to be stored in : $ORACLE_HOME\bifoundation\web\msgdb\messages

BI Admin tool environment initialization script location:  $INSTANCE_HOME\bifoundation\OracleBIApplication\coreapplication\setup\bi-init.cmd

BI Admin tool executable location : $ORACLE_HOME\bifoundation\server\bin\admintool.exe

Script to specify tnsnames.ora file for connecting to Oracle data sources : $INSTANCE_HOME\bifoundation\OracleBIApplication\coreapplication\setup\user.cmd

Configuration file locations: $INSTANCE_HOME\config ( Here you will find individual directories for each component).

Script to start/stop OPMN services : $INSTANCE_HOME\bin\opmnctl.bat

Scripts to start/stop Admin and Managed Servers (Weblogic) : $DOMAIN_HOME\bin

Script to Manually start/stop NodeManager (installed as a service in Windows / needs to be manually run in Linux) :  $WEBLOGIC_HOME\server\bin\startNodeManager.cmd

Log file locations:

component path log file
OBIEE Installation C:\Program Files\Oracle\Inventory\logs install[datetime].log
Admin Server $DOMAIN_HOME\servers\AdminServer\logs AdminServer.log, AdminServer-diagnostic.log
Managed Server(s) $DOMAIN_HOME\servers\bi_server1\logs bi_server1.log, bi_server1-diagnostic.log
OPMN $INSTANCE_HOME\diagnostics\logs\OPMN\opmn opmn.log
Presentation Server $INSTANCE_HOME\diagnostics\logs\OracleBIPresentationServicesComponent\coreapplication_obips1 sawlog0.log
BI Server $INSTANCE_HOME\diagnostics\logs\OracleBIServerComponent\coreapplication_obis1 nqserver.log, nqquery.logs
BI Scheduler $INSTANCE_HOME\diagnostics\logs\OracleBISchedulerComponent\coreapplication_obisch1 nqscheduler.log

Cache Paths:

BIServer: $INSTANCE_HOME\bifoundation\OracleBIServerComponent\coreapplication_obis1\cache

Presentation Server: $INSTANCE_HOME\tmp\OracleBIPresentationServicesComponent\coreapplication_obips1\obis_temp

Did I miss anything? Please feel free to email me your comments.

Monday, May 6, 2013

OBIEE 11g: Web Catalog Permissions dialog not displayed

 

You come across this problem, especially when you migrate/move the catalog to another server.

permissiondialog01

Initially it might seem to be a browser problem, but it isn’t. Refer to the support doc [ID 1476105.1] to resolve this. The problem is because of the many invalid users that are still present in the catalog and you will need to clean them up.

Opening Catalog Manager in Online mode

If you are on a Windows system, go to Start Menu –> All Programs –> Oracle Business Intelligence –> Catalog Manager.

or you can go to $INSTANCE_HOME\bifoundation\OracleBIPresentationServicesComponent\coreapplication_obips1\catalogmanager and run the runcat.cmd script.

After the Catalog Manager window opens, click on File –> Open CatalogcatalogManager01

After login is successful you are able to view the catalog contents.

catalogManager02

Friday, May 3, 2013

Impersonate / Act as feature in OBIEE

The Impersonate feature in OBIEE enables one user to “act as” or login in as another user without the need for the other user’s password. Why would we need such a feature? This could be helpful in situations where you would want to delegate the rights to another user or when testers want to test certain functionalities (maybe from a security view point), for multiple users.

In this post, I’m going to show how the impersonation setup is done in OBIEE. I’m using version 11.1.1.6.0 for this post.

First you specify in a database table, the associations between user impersonation i.e. which user is allowed to log as which other user. Refer to this doc from Oracle and create your table.

CREATE TABLE OBIEE_PROXY
  (
    PROXY_USER_ID VARCHAR2(100 BYTE) NOT NULL
  , PROXY_TARGET_ID VARCHAR2(100 BYTE) NOT NULL
  , PROXY_LEVEL VARCHAR2(50 BYTE) NOT NULL
  , CONSTRAINT OBIEE_PROXY_PK PRIMARY KEY ( PROXY_USER_ID , PROXY_TARGET_ID ) ENABLE
  )

insert values about the users involved in the impersonation into this table. I have created two users which can impersonate each other.

impersonation01

The PROXY_LEVEL column determines the authority level which is of types

  • Restricted — Permissions are read-only to the objects to which the target user has access. Privileges are determined by the proxy user's account (not the target user's account). For example, suppose a proxy user has not been assigned the Access to Answers privilege, and the target user has. When the proxy user is acting as the target user, the target user cannot access Answers.

  • Full — Permissions and privileges are inherited from the target user's account. For example, suppose a proxy user has not been assigned the Access to Answers privilege, and the target user has. When the proxy user is acting as the target user, the target user can access Answers. Ref: Oracle Docs

Next you import this table into your repository. See below the screenshot of the table that I have imported into the physical layer.

impersonation02

Next, create a separate connection pool ( I called it “VarInitConn”) pool needed for the next step.

Next, you create session variables and initialization blocks to authenticate proxy users.

Open the BI Admin tool. go to the menu Manage –> Variables. In the variable manager dialog, select Session and on the RHS right click in an empty space to bring the context menu and choose “New Session Variable”. You can also do the same thing from the Menu  Action –> New –> Session –> Variable.

The below table shows the details of the session variables and their associated initialization blocks.

Variable Initialization block
PROXY name: proxyblock
code:

SELECT PROXY_TARGET_ID
FROM OBIEE_PROXY
WHERE UPPER(PROXY_USER_ID) = UPPER(':USER')
   AND UPPER(PROXY_TARGET_ID) = UPPER('VALUEOF(NQ_SESSION.RUNAS)')

PROXYLEVEL name: proxylevelblock
code:

SELECT PROXY_LEVEL
FROM OBIEE_PROXY
WHERE UPPER(PROXY_TARGET_ID) = UPPER('VALUEOF(NQ_SESSION.RUNAS)')
  AND  UPPER(PROXY_USER_ID) = UPPER('VALUEOF(NQ_SESSION.RUNASORIGUSER)')

impersonation04

impersonation05

Next, create the custom message template that contains SQL statements to

  • Obtain the list of target users that a proxy user can act as. This list is displayed in the User box in the Act As dialog box.
  • Verify whether the proxy user can act as the target user.
  • Obtain the list of proxy users that can act as the target user. This list is displayed on the target user's My Account screen.

Save (as per oracle docs) your script to  ORACLE_
INSTANCE\bifoundation\OracleBIPresentationServicesComponent\coreapplicati
on_obipsn\analyticsRes\customMessages

I saved the template file as LogonParamSQLTemplate.xml  in MW_HOME\Oracle_BI1\bifoundation\web\msgdb\messages (this is fine too.)

<?xml version="1.0" encoding="utf-8" ?>
<WebMessageTables xmlns:sawm="com.siebel.analytics.web.messageSystem">
<WebMessageTable system="SecurityTemplates" table="Messages">
   <WebMessage name="LogonParamSQLTemplate">
      <XML>
       <logonParam name="RUNAS">
       <!-- Repository physical_dbname.conn_pool_name -->
         <getValues>EXECUTE PHYSICAL CONNECTION POOL "DB11g_local"."VarInitConn"
                  select PROXY_TARGET_ID from OBIEE_PROXY where PROXY_USER_ID='@{USERID}'
         </getValues>
         <verifyValue> EXECUTE PHYSICAL CONNECTION POOL "DB11g_local"."VarInitConn"
                  select PROXY_TARGET_ID from OBIEE_PROXY where PROXY_USER_ID='@{USERID}' and PROXY_TARGET_ID='@{VALUE}'
         </verifyValue>
         <getDelegateUsers>EXECUTE PHYSICAL CONNECTION POOL "DB11g_local"."VarInitConn"
                  select PROXY_USER_ID, PROXY_LEVEL from OBIEE_PROXY where PROXY_TARGET_ID='@{USERID}'
         </getDelegateUsers>
       </logonParam>
    </XML>
  </WebMessage>
</WebMessageTable>
</WebMessageTables>

Element Description
getValues

Specifies the SQL statement to return the list of target users and corresponding proxy levels.
The SQL statement must return either one or two columns, where the:
First column returns the IDs of the target users
Optional) Second column returns the names of the target users

verifyValue

Specifies the SQL statement to verify if the current user can act as the specified target user.
The SQL statement must return at least one row if the target user is valid or an empty table if the target user is invalid.

getDelegateUsers

Specifies the SQL statement to obtain the list of proxy users that can act as the current user and their corresponding proxy levels.
The SQL statement must return either one or two columns,where the:
First column returns the names of the proxy users
Optional) Second column returns the corresponding proxy levels

 

Next, edit instanceconfig.xml to configure impersonation settings.

just before the  </ServerInstance>  tag, add the following code

<LogonParam>
  <TemplateMessageName>LogonParamSQLTemplate</TemplateMessageName>
  <MaxValues>100</MaxValues>
</LogonParam>

</ServerInstance>
</WebConfig>

Tag Description
LogonParam

Serves as the parent element for the TemplateMessageName and MaxValues elements

TemplateMessageName

Specifies the name of the custom message template in the Custom Messages folder that contains the SQL statement to perform tasks related to displaying proxy and target users

MaxValues

Specifies the maximum number of target users to be listed in the Userbox in the Act As dialog box. If the number of target users for a proxy user exceeds this value, then an edit box, where the proxy user can enter the ID of a target user, is shown rather than list of target users.

Next, assign the “Act As Proxy privilege”  for each user or Application Role whom we want to enable as proxy users or give the “act as “ functionality. to do this:

Login into analytics as the BIAdministrator user (weblogic). In this case, I have assigned user1 and user2, BIAuthor role. Click the Administration link. Under the Security group, click on Manage Privileges.

impersonation06 

Lastly bounce the BI Services.

Login to Answers and you will find the option to Act as, in the top left corner of your Answers page.

impersonation07

impersonation08

you will not be prompted for the password. you will login automatically as the target user (in this case user2)

impersonation09 

Related Support doc: [ID 1418227.1]

Note: You may need to give the manageRepositories permission to each user you want to allow to act as a proxy user. This can be done by creating a new Application policy which in turn will relate to an Application role which in turn will have user groups assigned to it. But I have not done this part. I checked that currently in my system, only the BIAdministrator has the oracle.bi.server.manageRepositories permission.