Sunday, 30 December 2012

Install Usage Tracking in OBIEE 11g

you are just starting from the basic OBIEE 11g install. (specifically 11.1.1.6 patched to 11.1.1.6.4, but I don't think usage tracking is much affected by recent patches).
Remember by default Usage Tracking is recorded in the DEV_BI PLATFORM schema that gets created by the Repository Creation Utility(RCU) at the start of the OBIEE installation. 

The DEV_BI PLATFORM schema does not contain all of the tables require for usage tracking. There are two date tables which need to be imported. Fortunately there are scripts that come with OBIEE to do this. 

Open up a command window and navigate to the  This Path:
OBIEE_HOME\instances\instance1\bifoundation\OracleBIServerComponent\coreapplication_obis1\sample\usagetracking\SQL_Server_Time directory
Run sqlplus, connecting to your DEV_BIPLATFORM schema, then run the following four script files:
sqlplus xxx_biplaform/password@sid
@Oracle_create_nQ_Calendar.sql
@Oracle_create_nQ_Clock.sql
@Oracle_nQ_Calendar.sql
@Oracle_nQ_Clock.sql
 
The first two scripts create the two new tables (ignore the drop error the script generates). The last two files populate the tables with data. When you’ve run all four scricpts.
 Finally run a commit and exit from sqlplus.
To upgrade the usage tracking repository start by taking a copy of the usage tracking RPD. This is called UsageTracking.rpd and can be found in the OBIEE_HOME \instances\instance1\bifoundation\OracleBIServerComponent\coreapplication_obis1\sample\usagetracking directory. Copy it to a temporary directory.
This needs to be upgraded to 11g. If you try to open it in the Admin tool you see the following message:
To upgrade it we use the obieerpdmigrateutil.exe utility. 
In a command window set the ORACLE_INSTANCE environment variable to your OBIEE_HOME \instances\instance1 directory, change directory to ORACLE_HOME\Oracle_BI1\bifoundation\server\bin then run obieerpdmigrateutil.exe with the following parameters:
-I location and name of existing RPD
-O location and name of new RPD
-L file name to store local users in – not relevant, but it needs it anyway
-U Administrator user-name  - Administrator

e.g.:

set ORACLE_INSTANCE=C:\app\obiee\instances\instance1
cd c:\app\obiee\Oracle_BI1\bifoundation\server\bin
obieerpdmigrateutil.exe -I c:\temp\UsageTracking.rpd -O c:\temp\NewUsageTracking.rpd -L c:\temp\ldif -U Administrator

When asked for the encryption password, it means the new repository password which is required by 11g. Just give it a simple password for now as it will be merged into your main repository later on.

You should now be able to open the new usage tracking RPD (NewUsageTracking.rpd) off-line in the Admin tool:
 

We now need to add extra fields to the S_NQ_ACCT table in the physical layer. This is because Oracle have added extra fields to the actual table and altered the usage tracking functionality in OBIEE to use them. If they are not in the RPD, OBIEE will fail to update the table with usage details.

Expand the S_NQ_ACCT table in the physical layer and check that all of the following fields exist with the correct data type. 

Rename RUNAS_USER_NAME to IMPERSONATOR_USER_NAME then add in those that are missing (right click on S_NQ_ACCT, select New -> Physical Column…) - ID, QUERY_BLOB and QUERY_KEY.

Finally change the data type for all of the DOUBLE fields below from INT to DOUBLE. It is  important that the Nullable field is correct on every field.
Note: be very careful not to include spaces before or after the names of each field renamed or added…the spaces will be retained and prevent the write back from working.
Field Name              Data Type     Length     Nullable?
CACHE_IND_FLG           CHAR            1           No
COMPILE_TIME_SEC        DOUBLE                      Yes
CUM_DB_TIME_SEC         DOUBLE                      Yes
CUM_NUM_DB_ROW          DOUBLE                      Yes
END_DT                  DATETIME                    Yes
END_HOUR_MIN            CHAR            5           Yes
END_TS                  DATETIME                    Yes
ERROR_TEXT              VARCHAR         250         Yes
ID                      VARCHAR         50          No
IMPERSONATOR_USER_NAME  VARCHAR         128         Yes
NODE_ID                 VARCHAR         15          Yes
NUM_CACHE_HITS          DOUBLE                      Yes
NUM_CACHE_INSERTED      DOUBLE                      Yes
NUM_DB_QUERY            DOUBLE                      Yes
PRESENTATION_NAME       VARCHAR         128         Yes
QUERY_BLOB              LONGVARCHAR     4000        Yes
QUERY_KEY               VARCHAR         128         Yes
QUERY_SRC_CD            VARCHAR         30          Yes
QUERY_TEXT              VARCHAR         1024        Yes
REPOSITORY_NAME         VARCHAR         128         Yes
ROW_COUNT               DOUBLE                      Yes
SAW_DASHBOARD           VARCHAR         150         Yes
SAW_DASHBOARD_PG        VARCHAR         150         Yes
SAW_SRC_PATH            VARCHAR         250         Yes
START_DT                DATETIME                    Yes
START_HOUR_MIN          CHAR            5           Yes
START_TS                DATETIME                    Yes
SUBJECT_AREA_NAME       VARCHAR         128         Yes
SUCCESS_FLG             DOUBLE                      Yes
TOTAL_TIME_SEC          DOUBLE                      Yes
USER_NAME               VARCHAR         128           Yes
Now right click on S_NQ_ACCT, select Physical Diagram -> Objects and Direct Joins.
 
The joins to S_ETL_TIME_DAY and S_ETL_DAY are fine, but the join to NQ_LOGIN_GROUP is broken – the line is red and there is no arrow. Click on it and delete it.
 Now click on the new join icon 
   
 and draw a new join from S_NQ_ACCT to NQ_LOGIN_GROUP and change the join condition to:
"OBI Usage Tracking"."Catalog"."dbo"."NQ_LOGIN_GROUP"."LOGIN" = "OBI Usage Tracking"."Catalog"."dbo"."S_NQ_ACCT"."USER_NAME"
 
Then click ok to save and close the diagram.
Now right click on S_NQ_ACCT and select properties. If there is no Key defined, enter ID in Key name and select the ID field from the drop down in the Columns field. This defines the key on the table. Click ok.
 
Now to sort out the connection details to the xxx_BIPLATFORM schema. From the menu in Admin select Manage -> Variables
  
 There are only two – OLTP_USER and OLTP_DSN. Edit each one and change the default initializer. Note that the values must be enclosed in single quotes.
Edit each one by double clicking on it and change the default initializer. Note that the values must be enclosed in single quotes
 
Set OLTP_USER to xxx_BIPLATFORM (replace the xxx with the actual prefix for your installation) Set OLTP_DSN to the TNSNAME of the database.
 
Close the window.
In the Physical layer right click on ‘OBI Usage Tracking’ database, select properties. In the General tab change the Database to Oracle 11g (or whatever type of database you installed the xxx_BIPLATFORM schema in when you installed Oracle) 
 
Then click on the Features tab and click the ‘Reset to defaults’ button
 
Click ok to save.
Now right click on the ‘Connection Pool’ connection pool, select Properties.
Make sure the Call Interface is set correctly for your database – OCI 10g/11g for Oracle 10g or 11g. Then type in the correct password to the xxx_BIPLATFORM schema. Then click ok and re-enter the password as prompted.
 
Now edit the ‘Usage Tracking Writer Connection Pool’ connection pool and make the same changes as above.
Finally in the Admin tool, to fix an annoying message later on, from the menu click Manage -> Identity. 
 
Click on the Application Roles tab, select the top role – BIAdministrators, right click on it and select delete. Once this RPD has been merged with your main repository this group just causes an unnecessary warning message in the consistency checker.
Now save the repository – check consistency when prompted to ensure there are no errors or warnings.
We are now ready to merge this RPD with your main repository. If you’ve never merged repositories before, this process may seem a little odd, but just following it through anyway.
Firstly when merging to completely separate repositories (as opposed to two slightly different ones, e.g. master and amended), you need a blank RPD file to help the process through. Essentially merging repositories is a three-way process, comparing the differences between the first two and then merging those differences into a third.
To create a blank repository, select File -> New Repository.  Enter a name (blank.rpd), a location (the temp directory), click the No option against import metadata then enter a simple password. Finally click Finish.
Now copy your main repository to the temp directory (you wouldn’t want to attempt this on-line, trust me!)Next open the new Usage tracking RPD off-line.  Then from the menu select File -> Merge… 
 
In the Merge Wizard screen select Merge Type ‘Full Repository Merge’

Then select the Blank RPD as the Original Master Repository and enter its password.

Then select your main Repository as the Modified Repository and enter its password.

Leave the Save Merged Repository as the default name (usually the same name with (1) at the end) – you can rename it later once the merge is complete.

Leave Equalize during merge unchecked. Click Next.
  
 The next screen controls how the merge will happen. All we need to do is specify how the Usage Tracking subject area is to be added. From the little drop down in the Decision column choose ‘Current’. Then click Finish.
 
The merge won’t take long and you’ll be left with a new RPD which is a copy of your main RPD with the Usage tracking components added in:
 
Check consistency (Ctrl-E) to ensure all is ok.

You will need to reset the password as this will have the simple password entered above when you upgraded the usage tracking RPD to 11g. Select File -> Change Password from the menu to do this.
Then close the Admin tool.  You can now deploy this RPD to your OBIEE environment. Rename the RPD file if required then deploy using the enterprise manager as normal.
Once OBIEE has restarted login to the dashboards and view a dashboard. You can then view the S_NQ_ACCT table in the database and see that it has started populating with usage details:
 
If you see no records, then usage tracking has failed to start. Look in the nqserver.log file (located under OBIEE_HOME\instances\instance1\diagnostics\logs\OracleBIServerComponent\coreapplication_obis1) to see if there are any error messages. 
A common message is [59053] Usage Tracking stopped because the specified Usage Tracking table contained the wrong number of columns or a column with an inappropriate data type. This means that the S_NQ_ACCT table in the RPD has not been setup properly, go back and check that all of the fields are there, they are named correctly (check for spaces in the field names), they have the correct data type and the nullable field is set properly. Correct any errors and redeploy.

Install the Usage Tracking Web Catalog

You can now create your own usage reports using the Usage Tracking subject area in the RPD, however Usage Tracking also comes with a default set of dashboards and reports which you can install into your catalog to get you going.

In the OBIEE_HOME\instances\instance1\bifoundation\OracleBIServerComponent\coreapplication_obis1\sample\usagetracking directory is a zip file: UsageTracking.zip, copy this to your temp directory and unzip it.
Now go into the unzipped UsageTracking directory and then into \root\shared. In here locate the directory usage+tracking and the file usage+tracking.atr. Copy both of them into the shared folder of your main catalog. If you haven’t changed it this will be under OBIEE_HOME\instances\instance1\bifoundation\OracleBIPresentationServicesComponent\coreapplication_obips1\catalog. 

 Under here will be the directory for the name of the catalog (SampleAppLite in my case), then root\shared.
Now open the Catalog Manager.
 
From the menu select File -> Open Catalog and open online under the main weblogic administrator user-id:
  
If you’ve not done this before you’ll need to enter the URL which will be http://obiee-server:9704/analytics/saw.dll
 
You’ll see the Usage Tracking folder, but with no Owner and No Access.
Right click on Usage Tracking and select Properties.
 
Set the Owner the weblogic administrator user, make sure Hidden is unchecked and click Apply Recursively. Click ok.
Now right click on Usage Tracking again and select Permissions.
    
The first thing to do here is delete the <unresolved account> permissions. This are hangovers from OBIEE 10g. Select both and click the right arrow button 

Now select Authenticated User and BI Administrator role from the right hand window and click the left arrow button. In the left hand window then change the Permission against the BI Administrator Role to Full Control.  Click Apply Recursively. Click ok.
  
You can now click on the Usage Tracking folder and see it’s contents:
 
For some reason the permissions set just above only go down one level, so you can now see the three folders above, but you still have no access to their contents.

Click into the _portal folder and against the usage tracking folder within repeat the properties and permissions settings above, however this time after setting the permissions go back into the properties screen and untick the hidden option, apply recursively and click ok again. Repeat this with the Subject Area Contents folder (again untick the Hidden attribute as well). 
Finally on the Usage Monitoring Reports folder select all of the report files within and repeat the properties and permissions settings (you can select all and do all files together).
Now log into OBIEE under the weblogic administrator user. You won’t be able to see the dashboards yet as the reports still need to be upgraded to 11g. Click on the Administration link in the top right corner.
Click on the option in the bottom left: “Scan and Update Catalog Objects That Require Updates”:
                        
                  
Click update.
 The scan won’t take long and should report a number of objects have been updated:
                        
Click Back.
The Usage Tracking dashboard fails to get updated properly, so we need to create a new dashboard and then copy the contents across. From the main OBIEE menu select New -> Dashboard.
                        
 

Enter the name New Usage Tracking, select /Shared Folders/Usage Tracking/Dashboards from the Location drop down and tick the ‘Add content later’ option. Click ok.
 
Now in the catalog navigate to Shared Folders -> Usage Tracking -> _portal -> Usage Tracking:  
   
in the menu above.Then click on the New Usage Tracking folder and click the paste icon 
Now click on the _portal folder, then click More -> Delete under the Usage Tracking folder in the right hand window.
              
Then click More -> Rename under New Usage Tracking and rename to Usage Tracking.
In the Dashboard menu, click on the Usage Tracking dashboard
This will open the blank ‘Page 1’ of the “new” dashboard we created a second a ago, so edit the dashboard:
 
And use the
 
icon to delete ‘Page 1’. 
Then click Run.
Before running any reports the upgrade process on the catalog breaks the definition of the filters used by the reports. Fortunately there are only three of them. Outside of OBIEE navigate to the catalog \shared\usage+tracking\_filters\usage+tracking folder. There six files here, but ignore the three with the extension .atr
Edit each one in a text editor, replacing “**NONE**” with “Usage Tracking” (there is only one occurrence in each file).
We’re there! Click on a report on the dashboard to run it:


 



   
 

No comments:

Post a Comment