0

我已经在我的机器上安装了 Cognos BI 8.3,它有一个 64 位的 Windows 7 OS。在 IBM 的Cognos 8.3支持的环境列表中,没有列出 Windows 7。最重要的是,它表示该产品将仅与 32 位第 3 方库集成。所以,你已经可以看到我已经开始步履蹒跚了。但无论如何,这是我拥有的机器,也是我得到的软件,所以我决定看看他们是否能一起工作。

我还在我的机器和 Apache 2.2 服务器中安装了 Oracle 10g Express 数据库。到此为止没有任何问题。

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

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

(您可以按照本网站上的步骤查看我所做的一切,自两天前以来似乎已关闭,但我认为最终会恢复)

然后我决定尝试这些示例,因此我尝试创建从 Cognos 到 Oracle 数据库的数据源连接。因此,在管理配置控制台(即管理 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 正常返回。

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

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

  6. 安装了 Oracle XE 客户端。但是并没有做太多,因为Oracle服务器安装在计算机中,并且还有一个客户端组件。

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

谢谢!

4

2 回答 2

1

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

于 2011-08-09T19:40:06.263 回答
1

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

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

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

因此,根据您的描述,我会说问题区域出在本地 oracle 客户端配置中(或 Cognos 服务的角度来看)。

您提到了在 Windows 中添加 ORACLE_HOME、LD_LIBRARY_PATH 和 TNS_ADMIN 环境变量,以及 SQLPlus 和 TNSPing 等 Oracle 实用程序为您工作的事实。

添加环境变量时,是添加到环境变量的SYSTEM区域还是用户区域...?

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

我会试试这个:

  1. 确保为SYSTEM用户定义了上述环境变量(在系统区域,而不是用户区域)
  2. 完成此操作后,重新启动机器

看看你现在是否可以创建数据库连接。

如果这不起作用,我建议以 SYSTEM 用户身份执行 SQLPlus 或 TNSPING 的“运行方式”(看看是否可行)。

于 2011-08-05T17:00:34.297 回答