Friday, June 22, 2012

OBIEE 10g Chart navigation issue

I faced an issue with respect to a few data in a report not getting navigated to the detailed report. This was specific to select data in a chart. However the other data in the chart was getting navigated without issue.

To fix this issue, follow the below mentioned steps:
  • Go the path - <Drive>\OracleBI\web\javahost\config
  • Take the backup of config.xml file.
  • Locate the tag <Charts> and under this tag:
    • <!--<EnableXmlValidation>no</EnableXmlValidation>-->
    • Uncomment the above mentioned line.. i.e ... Change the line to :
    • <EnableXmlValidation>no</EnableXmlValidation>
  • Save the change and restart the JavaHost service.

Issue Resolved!

Cheers

Gautam

OBIEE - The Calendar prompt TimeStamp Issue


The Calendar prompt defaults the date format as timestamp 12:00 AM to the search

This document contains the steps to be followed in applying the oracle patch 9492821 in order to fix the defect 4773.

 



Pre-Requisites: Please note that, you must have 10.1.3.4.1.090414.1900 or later installed and verified to be working before installing this patch.  Stop the Oracle BI Presentation Server.
Installing the patch
1)       Stop the Oracle BI Presentation Server

2)       Make a backup of the following files on the server that Oracle BI is currently installed:
(Please take a backup of the <OracleBI>\web folder)

                                <OracleBI>\web\app\res\b_mozilla\common\datetime.js
                                <OracleBI>\web\app\res\b_mozilla\dashboards\portalscript.js
                                <OracleBI>\web\app\res\b_mozilla\prompts\gfpdefault.js
                                <OracleBI>\web\app\res\b_mozilla\prompts\globalfilterprompt.js
                                <OracleBI>\web\bin\sawmarkup3r.dll
                                <OracleBI>\web\bin\sawmobile3r.dll
                                <OracleBI>\web\bin\sawreport3r.dll
                                <OracleBI>\web\bin\sawsubsystems3r.dll
                                <OracleBI>\web\bin\sawviews3r.dll
                                <OracleBI>\web\msgdb\messages\promptviewtemplates.xml
           Temporarily keep this backup in another location on the hard drive.


3)        Unzip and copy the updated files into the same location as mentioned above - this should overwrite the existing files with the updated version.

4)       Copy the version.txt into the <OracleBI> install directory.

5)       Create and deploy a new analytics. War (or .ear) file
To create and re deploy the new analytic.war file, follow the steps below
                             a)       Navigate to <OracleBI>\web

b)       Set the Java_Home Path <OracleBI>:\OracleBI\web> 
set JAVA_HOME= C:\Program Files\Java\jdk1.6.0_26
(Select the JAVA_HOME by browsing to specified location mentioned above. jdk version may differ. )


c)  Rename the analytics .war file in the location <OracleBI>:\OracleBI\web as copy of analytics.war
 
d)  Create analytics.war file by the command
      jar -cf analytics.war -C app .

          e) Verify that analytics.war file is created in the location <OracleBI>:\OracleBI\web

Redeploy the archive

1)       Start oc4j console to see the console
2) Select Application Server Control


3) Login Screen is
displayed ( If the User Name & Password is known , ignore step 4 and 
proceed to step 5. To get the User Name & Password , perform step 4 )



4) Navigate to Start -> OracleBussinesInteligence -> Stop OC4J (Properties)


5)     Provide the correct User Name & Password  

6)      Stop the Services (Oracle BI Java Host, Oracle BI Presentation Server, Oracle BI Server)


7)        Select analytics


8)       Click on Redeploy


9)       Browse the Archive Location and click Next


10)       Click Next


11)       Click on Redploy


12)       The confirmation web page open and you can see the progress


13)     Restart the services ( Oracle BI Server , Oracle BI Presentation Server , Oracle BI Java Host)

Cheers,

 Gautam




Oracle Database - Arabic Support


This document will encompass how an Oracle Database server can be made to support Arabic Data.

1.       In regedit go to local machine - > Software -> ORACLE -> KEY_OraDb11g_home1
a.       Check whether the NLS_LANG = ‘AMERICAN_AMERICA.WE8MSWIN1252’
b.      If not, modify it and make is ‘AMERICAN_AMERICA.WE8MSWIN1252

2.       In Environmental Variables set the following environmental variables:
a.       NLS_LANG : AMERICAN_AMERICA.AR8MSWIN1256
b.      NLS_CHARACTERSET: AR8MSWIN1256

3.       Once this is performed, log into your Db using SQL Developer as DBA.
a.       Perform the following Query

select distinct(nls_charset_name(charsetid)) CHARACTERSET,
decode(type#, 1, decode(charsetform, 1, 'VARCHAR2', 2, 'NVARCHAR2','UNKNOWN'),
9, decode(charsetform, 1, 'VARCHAR', 2, 'NCHAR VARYING', 'UNKNOWN'),
96, decode(charsetform, 1, 'CHAR', 2, 'NCHAR', 'UNKNOWN'),
8, decode(charsetform, 1, 'LONG', 'UNKNOWN'),
112, decode(charsetform, 1, 'CLOB', 2, 'NCLOB', 'UNKNOWN')) TYPES_USED_IN
from sys.col$ where charsetform in (1,2) and type# in (1, 8, 9, 96, 112)
order by CHARACTERSET, TYPES_USED_IN;

                                This query should only retrieve 7 rows having only 2 charactersets.(If it has more than 7 rows, this data is incorrect as somewhere down the line, the db has got corrupted)

4.       Run the following query and check if it returns any rows. These rows are the corrupted ones!

select OWNER, TABLE_NAME, COLUMN_NAME from DBA_TAB_COLS where COLUMN_ID in (select unique COL#
from sys.col$ where CHARSETID=NLS_CHARSET_ID('AL32UTF8') and charsetform ='1')
order by OWNER, TABLE_NAME, COLUMN_NAME;

5.       Run the following query and perform a check for the following:

SELECT * FROM NLS_DATABASE_PARAMETERS;

NLS_LANGUAGE
AMERICAN
NLS_TERRITORY
AMERICA
NLS_CHARACTERSET
AR8MSWIN1256
 
6.       Perform the below mentioned queries:
SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_CHARACTERSET';
Output: AR8MSWIN1256
SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_NCHAR_CHARACTERSET';
Output: AL16UTF16
7.       If the results of step 5 and 6 are different than what is mentioned the next step brings it inline.

8.       This step is very important. Having logged in as Dba in SQL Developer, run the following Query.
UPDATE PROPS$
SET VALUE$ = 'AR8MSWIN1256'
WHERE NAME = 'NLS_CHARACTERSET';
This will update one record.
Repeat Step 5 and 6.
9.       Stop the OracleOraDb11g_home1TNSListener Service.

10.   This is the step that resets all values as per our requirement. Most Important step.        
a.       Log into SQL Plus as dba.
b.      Run the following Script.

Spool charfix.log
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER SYSTEM SET AQ_TM_PROCESSES=0;
ALTER DATABASE OPEN;
COL VALUE NEW_VALUE CHARSET
SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_CHARACTERSET';
COL VALUE NEW_VALUE NCHARSET
SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER='NLS_NCHAR_CHARACTERSET';
ALTER DATABASE CHARACTER SET INTERNAL_USE &CHARSET;
ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE &NCHARSET;
SHUTDOWN IMMEDIATE;
STARTUP;
-- yes, 2 times startup/shutdown . This is not a typo
SHUTDOWN IMMEDIATE;
STARTUP;
spool off

c.       This will take 2-4 minutes to execute.
11.   Once this is executed, start the OracleOraDb11g_home1TNSListener Service.
12.   Login into SQL Developer and check Step 5 and 6.
13.   Now, you will be able to insert Arabic data in your database.

Note that the characterset mentioned here is the one for Arabic.
The different charctersets available are mentioned in this link:


You have successfully completed the task!

Cheers!