我这两天遇到一个问题,服务器上安装的是64位Cognos10.2以及64位Oracle11g,当创建Oracle类型的数据源时,测试连接一直报QE-DEF-0285 登录失败 的错误。数据库的本地网络名配置是没有问题的,在Net Manager里可以测通创建的服务名,Oracle的JDBC驱动ojdbc6.jar我也拷到Cognos的webappsp2pdWEB-INFlib目录下了,按理说创建数据源是可以测通的,但是试了N遍都不行,重启Oracle和Cognos都不行。后来我怀疑是不是跟Oracle的位数有关,Oracle在服务器上只安装了64位服务器,没有安装客户端,然后我就拷了一个32位的Oracle11g客户端文件夹放到Oracle安装目录product下,再把tnsnames.ora拷过来,再配置一些变量,具体操作方法可以参考
http://jingyan.baidu.com/article/22a299b51741df9e19376a90.html,这个时候发现在Net Manager里该服务名使用的是32位客户端的tnsnames.ora,最后把Cognos重启(我也不知道需不需要重启)就可以创建能连接成功的数据源了。为了验证我的怀疑,我把那三个环境变量给去掉,即不使用32位客户端连接,这时候再测试刚才创建成功的数据源,还是报QE-DEF-0285 登录失败 的错误,所以我目前得出结论是64位Cognos连64位Oracle只能用32位客户端。
以上我是刚刚在项目中遇到问题总结的经验,希望能帮到遇到同样问题的人吧。现在我有一个疑问:为什么Cognos和Oracle都是64位(当然服务器操作系统也是64位),创建数据源时只能用32位的客户端来连接呢?有大神知道吗?
另外我再补充一下,我刚才把三个环境变量添回去后,直接测试数据源是否连接成功,结果报QE-DEF-0285 登录失败,重启Cognos服务后再测试连接就成功了。
收起