OBIEE 11g Client Admin Tool Connection To Datasource In Offline Mode Fails With Error "The Connection Has Failed
使用OBIEE 11g BI 管理工具 导入元数据,连接OCI 10g/11g数据源时,点击连接会报错[连接失败],如下图:
参考了Oracle Notes
OBIEE 11g Client Admin Tool Connection To Datasource In Offline Mode Fails With Error "The Connection Has Failed" [ID 1296370.1]
解决方法如下:
#Applies to
Business Intelligence Server Enterprise Edition - Version: 11.1.1.3.0 [1905] and later [Release: 11g and later ]
Generic Windows
#Symptoms
Created a new repository (RPD) using the Oracle Business Intelligence Enterprise Edition (OBIEE) Admin Tool. When trying to import data in offline mode, the following error occurs with both ODBC and OCI connection:
#Error
The Connection has failed.
You may also notice all or some of the following errors in NQSAdminTool.log:
[路径是:<安装路径>\oraclebi\orainst\diagnostics\logs\OracleBIServerComponent\coreapplication\Administrator_NQSAdminTool.log]
[2011-02-07T11:26:19.000+00:00] [OracleBIServerComponent] [nQSError: 17003] Oracle gateway error: OCIEnvNlsCreate or OCIEnvInit failed to initialize environment. Please check your Oracle Client installation and make sure the correct version of OCI libraries are in the library path.
...
[2011-02-08T15:42:58.000+00:00] [nQSError: 17014] Could not connect to Oracle database. [
[nQSError: 17001] Oracle Error code: 12154, message: ORA-12154: TNS:could not resolve the connect identifier specified
at OCI call OCIServerAttach
...
]
[2011-02-08T15:46:08.000+00:00] [nQSError: 17014] Could not connect to Oracle database. [
[nQSError: 17001] Oracle Error code: 12705, message: ORA-12705: Cannot access NLS data files or invalid environment specified at OCI call OCISessionBegin
...
The issue is not reproducible while in Online mode.
#Cause
Multiple Oracle Homes exist which can cause confusion to the OBIEE Admin Tool for where to reference OCI libraries, NLS and the tnsnames.ora entries.
Additional configuration steps are required to ensure the desired files are used.
SolutionTo prevent this error, you need to complete the following configuration tasks:
NOTE: In all cases, the OBIEE Admin Tool should be started by using the Start -> Programs -> Oracle Business Intelligence -> Administration Tool menu item and not by double-clicking the RPD file itself. Starting the Admin Tool via the menu item is required to initialize required environment variables.
Setting the TNSNAMES.ORA entry to use the same name as the Oracle Database SID is recommended. The TNS_ADMIN environment variable needs to point to the physical location of the TNSNAMES.ORA file in the local environment (whether this be the OBIEE server machine or Admin Tool machine).
##1. For the Admin Tool installed with the complete OBIEE server installation:
1.1. Edit registry under HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\<Oracle_Home> to make sure NLS_LANG key is set to a valid characterset for the Oracle Client used as the DSN.
1.2. Please edit the file %MiddleWare_Home%\instances\instance1\bifoundation\OracleBIApplication\coreapplication\setup\bi-init.cmd to set %ORACLE_HOME%\bin as first entry in the PATH.
e.g.
set PATH=%OBIEE_HOME%\bin;%OBIEE_HOME%\bifoundation\server\bin;%OBIEE_HOME%\bifoundation\web\bin;C:\Oracle\BIEE_11g\jre\bin;%windir%;%windir%\system32;%PATH%
1.3. Please edit the file %MiddleWare_Home%\instances\instance1\bifoundation\OracleBIApplication\coreapplication\setup\user.cmd to set TNS_ADMIN to your Oracle client tnsnames.ora home directory path (in case exists) or to your OBIEE tnsadmin %OBIEE_Client_Home%\Oracle_BI1\network\admin.
e.g.
set TNS_ADMIN=C:\oracle\product\11.2.0\client_1\network\admin
~ OR ~
set TNS_ADMIN=C:\Oracle\OracleBIEE11g\Oracle_BI1\network\admin
##2. For the Admin Tool installed with the new standalone installer:
2.1. Edit registry under HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\<Oracle_Home> to make sure NLS_LANG key is set to a valid characterset for the Oracle Client used as the DSN.
这一步的设置参考如下图,修改NA为SIMPLIFIED CHINESE_CHINA.ZHS16GBK
2.2. Please edit the file %OBIEE_Client_Home%\\oraclebi\orahome\bifoundation\server\bin\bi_init.bat to set %ORACLE_HOME%\bin as first entry in the PATH.
2.3. Please add TNS_ADMIN entry to the bi_init.bat file to point to your Oracle client tnsnames.ora home directory path.
e.g.
set TNS_ADMIN=C:\oracle\product\11.2.0\client_1\network\admin
最后我设置的文件bi_init.bat为:
===========================================
@echo off
rem overwrite JAVA_HOME
set JAVA_HOME=%~d0%~p0..\..\..\..\..\jre
if exist "%JAVA_HOME%\bin\java.exe" goto:doneJAVAHOME
rem abort
echo *******************
echo ****** ERROR ******
echo *******************
set /p prompt=[Invalid JAVA_HOME: %JAVA_HOME%] Enter return to abort
exit 100
:doneJAVAHOME
set ORACLE_HOME=D:\DevSuiteHomeset TNS_ADMIN=D:\DevSuiteHome\NETWORK\ADMINset ORACLE_INSTANCE=D:\BIClient\oraclebi\orainst
set ORACLE_BI_APPLICATION=coreapplication
rem call %ORACLE_INSTANCE%\bifoundation\OracleBIApplication\%ORACLE_BI_APPLICATION%\setup\user.cmd
if NOT "%1" == "" set COMPONENT_NAME=%1
set PATH=%ORACLE_HOME%\bin;%ORACLE_HOME%\bifoundation\server\bin;%ORACLE_HOME%\bifoundation\web\bin;%ORACLE_HOME%\bin;D:\BIClient\jre\bin;%windir%;%windir%\system32;%PATH%
if NOT "%2" == "" %2
===========================================
NOTE: While connecting from your standalone BI Admin Tool client in online mode, the Admin Tool will use the TNSNAMES.ORA file on the BI server. Ensure that your connection pool has the correct entries for your Oracle DB and that the TNSNAMES.ORA file on the BI server has the corresponding TNS entry.
You may instead use the short format for database connection string in the Data Source Name field e.g. dbservername:1521/orcl