Cognos 8.3无法连接到数据源。为什么?

时间:2011-08-05 16:25:16

标签: oracle datasource cognos

我已经在我的机器上安装了Cognos BI 8.3,它有一个Windows 7操作系统64位。在IBM的supported environment list for Cognos 8.3中,未列出Windows 7。最重要的是,它表示该产品将只与32位第三方库集成。所以,你已经可以看到我已经开始做坏事了。但无论如何,这是我拥有的机器,这是我得到的软件,所以我决定看看它们是否可以一起工作..

我在我的机器和Apache 2.2服务器上也安装了Oracle 10g Express数据库。到没有问题。

在进一步研究之前,我将ojdbc14.jar复制到cognos /.../ webapps / p2pd / WEB-INF / lib并在Cognos Configuration中添加了Oracle数据库。经过测试,通过。

随着数据库的启动,Apache服务器启动,Cognos启动,我成功地在计算机上启动了Cognos Connection。因此,看起来操作系统不是问题。

(你可以按照site上的步骤看到我所做的一切,因为两天前似乎已经失败但我想最终会回来了)

然后我决定尝试这些示例,因此我尝试创建从Cognos到Oracle数据库的数据源连接。因此,在admin配置控制台(即管理Cognos内容>配置)中,我决定创建一个新的Oracle数据源。我把凭证,但BAM ..测试失败。

失败讯息:

QE-DEF-0285 The logon failed.
QE-DEF-0323 The DSN(ODBC)/ServiceName is invalid. Either the DSN is missing or the host is inaccessible. 
RQP-DEF-0068 Unable to connect to at least one database during a multi-database attach to 1 database(s) in: 
testDateSourceConnection

UDA-SQL-0031 Unable to access the "testDataSourceConnection" database.
UDA-SQL-0532 Data Source is not accessible: "XE".
ORA-12154: TNS:could not resolve the connect identifier specified

RSV-SRV-0042 Trace back: 
...

从我研究的内容来看,这可能是一些事情,但似乎没有任何效果。这是我试过的:

  1. 添加ODBC驱动程序。添加了Oracle XE驱动程序,甚至确保它是在32位ODBC管理器(即Windows \ SysWOW64 \ odbcad32.exe)中完成的。那没用。

  2. 将ORACLE_HOME,LD_LIBRARY_PATH和TNS_ADMIN添加到我的环境变量中。

  3. tnsping XE数据库,ping返回ok。

  4. 计算机中没有tnsnames.ora重复项。

  5. 我试过,我可以通过sqlplus连接到数据库。我是否提到Cognos Config数据库测试也通过了?

  6. 已安装的Oracle XE客户端。但由于Oracle服务器安装在计算机中并且还有一个客户端组件,所以没有做太多。

  7. 有没有人遇到过这个问题?我几天都无法诊断问题或取得轻微进展。如果您希望我提供有关我尝试的任何解决方案的更多信息,请询问。如果你有一个潜在的解决方案,或者更好的是,如果你以前能够解决这个问题,请告诉我如何!

    谢谢!

2 个答案:

答案 0 :(得分:1)

要记住的一件事:Cognos BI的某些部分是通过Java实现的,其他部分是通过本机C ++进程实现的(BI总线进程)

Cognos使用JDBC从Java进程连接到内容存储库数据库。

BI总线进程将使用本机oracle客户端连接到Oracle。

因此,基于您的描述,我会说问题区域在本机oracle客户端配置中(或者Cognos服务的角度)。

您提到在Windows中添加ORACLE_HOME,LD_LIBRARY_PATH和TNS_ADMIN环境变量,以及Oracle Utilities(如SQLPlus和TNSPing)正在为您工作。

添加环境变量时,是否将它们添加到SYSTEM区域以获取环境变量或用户区域?

如果您将Cognos作为服务运行,它将成为SERVICES.EXE的子进程,该进程作为系统运行(除非您重新启动计算机,否则也不会重新启动此进程)。

我试试这个:

  1. 确保为SYSTEM用户定义了上述环境变量(在系统区域,而不是用户区域)
  2. 完成此操作后,重启机器
  3. 查看您是否可以立即创建数据库连接。

    如果这不起作用,我建议像SYSTEM用户一样“运行”SQLPlus或TNSPING(看看是否有效)。

答案 1 :(得分:1)

要使用oracle作为数据源,必须安装32位客户端。 64位客户端将无法正常工作。 所以,如果您安装了oracle express 64位,并且您不想将其卸载, 您可以安装额外的32位客户端,并确保将其设置为默认主页。