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

Oracle Cognos 8.3无法连接到数据源。为什么?,oracle,datasource,cognos,Oracle,Datasource,Cognos,我已经在我的机器上安装了CognosBI8.3,它有Windows7OS64位。在IBM的Cognos8.3版本中,没有列出Windows7。除此之外,它还表示该产品将只与32位第三方库集成。所以,你已经可以看到,我已经开始在一个坏脚。但无论如何,这是我的机器,这是我得到的软件,所以我决定看看他们是否能一起工作 我还在我的机器和Apache 2.2服务器上安装了Oracle 10g Express数据库。到目前为止没有问题 在继续之前,我将ojdbc14.jar复制到cognos/../weba

我已经在我的机器上安装了CognosBI8.3,它有Windows7OS64位。在IBM的Cognos8.3版本中,没有列出Windows7。除此之外,它还表示该产品将只与32位第三方库集成。所以,你已经可以看到,我已经开始在一个坏脚。但无论如何,这是我的机器,这是我得到的软件,所以我决定看看他们是否能一起工作

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

在继续之前,我将ojdbc14.jar复制到cognos/../webapps/p2pd/WEB-INF/lib,并在cognos配置中添加了Oracle数据库。经过测试,通过了

数据库启动后,Apache服务器启动,Cognos启动,我成功地在计算机上启动了Cognos连接。所以,看起来操作系统不是问题

(你可以通过以下步骤看到我所做的一切,从两天前开始,这些步骤似乎有所下降,但我认为最终会恢复)

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

失败消息:

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: 
...
根据我的研究,可能有很多事情,但似乎没有什么起作用。以下是我尝试过的:

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

  • 将ORACLE_HOME、LD_LIBRARY_PATH和TNS_ADMIN添加到我的环境变量中

  • 启动XE数据库,ping返回ok

  • 计算机中没有重复项

  • 我试过了,我可以通过sqlplus连接到数据库。我提到过Cognos配置数据库测试也通过了吗

  • 已安装Oracle XE客户端。但是,由于Oracle服务器安装在计算机中,并且还有一个客户端组件,所以它没有做很多工作

  • 有人遇到过这个问题吗?我已经好几天没能诊断出这个问题,甚至连一点进展都没有了。如果您希望我提供有关我尝试过的任何解决方案的更多信息,请询问。如果您有一个潜在的解决方案,或者更好的是,如果您以前能够解决这个问题,请让我知道如何解决


    谢谢

    > P> >记住:COGNOS BI的某些部分是通过java实现的,其他部分是通过C++本地进程(BI总线进程)

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

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

    因此,根据您的描述,我认为问题在于原生oracle客户机配置(或Cognos服务的视角)

    您提到在windows中添加ORACLE_HOME、LD_LIBRARY_PATH和TNS_ADMIN环境变量,以及ORACLE实用程序(如SQLPlus和TNSPing)为您工作的事实

    添加环境变量时,是否将其添加到环境变量的系统区域或用户区域

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

    我想试试这个:

  • 确保为系统用户定义了上述环境变量(在系统区域,而不是用户区域)
  • 完成此操作后,请重新启动计算机
  • 看看现在是否可以创建数据库连接


    如果这不起作用,我建议以系统用户的身份“运行”SQLPlus或TNSPING(看看是否有效)。

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

    嘿,谢谢您的建议。我确实在用户部分有这些变量,所以我把它们移到了系统区域。但不幸的是,一切都没有改变。让我给你一些更多的信息,这样也许你可以发现我的配置有什么有趣的地方。在我的系统环境变量中,我现在有ORACLE\u HOME(C:\oraclexe\app\ORACLE\product\10.2.0\server)、LD\u LIBRARY\u路径(C:\Program Files(x86)\cognos\c8\bin;C:\Program Files(x86)\cognos\c8\cgi bin;C:\oraclexe\app\ORACLE\product\10.2.0\server\lib)和TNS\u管理员(C:\oraclexe\app\ORACLE\ORACLE\product\product\10.2.0\server\NETWORK\ADMIN\tnsnames.ora)从我所阅读的内容来看,LD_LIBRARY_PATH通常与Unix系统相关联。是我的窗户,还需要吗?还有一些人提到了甲骨文。你认为我需要它吗?作为系统用户,您将如何运行SQLPLUS?对于所有的问题,我很抱歉。希望我能帮你解决这个问题;)在windows上,您应该将oracle bin目录添加到PATH,而不是LD_LIBRARY_pathk,完成。但还是一样。这一次,我还尝试更改Cognos配置上的数据库凭据,以便它们是sysdba的登录名。然后在Cognos连接中,我尝试了所有登录,结果都是一样的。。真讨厌。我已经很感激你花了这么多时间,但是你还有什么想法吗?