Cognos 8 错误及故障排除(转载)
Cognos安装配置确实很麻烦,相比其他的BI产品,有更多的额外配置,经常在论坛上看到网友提出各式各样的问题。
不知道是我运气背还是怎么着,遇到的问题特别多。将我在使用Cognos中遇到的错误及故障整理如下
1、jre 路径导致报错
这个时候我遇到一个问题,Cognos Configuration 无法正常启动,提示信息忘记截图了,不过这个问题比较简单。
错误提示中已经详细的描述了解决办法,其实是因为我的开发机上有Tomcat,设置了JAVA_HOME。
并且用的是JDK142的包,所以必须先修改其路径为Cognos的jre。否则启动Cognos Configuration的时候会报错。
2、Cognos8 The Database Connection Failed .运行数据库无法连接
遇到这个问题,是因为jdbc的缘故,如果是Oracle作为运行数据库,就会遇到。
将oracle\jdbc\lib\classes12.jar拷贝到Cognos8/webapps/p2pd/WEB-INF/lib下即可.
3、CFG-ERR-0106
这个问题就比较诡异了,反正就是启动超时,但是又没有具体原因,百度也没有任何解决办法。
外事不决问Google,还是Google强大,E文网站上倒是有不少同学遇到此类问题。
其实,是因为开发机上跑的程序太多,资源占用厉害导致的。
最后确定的解决办法是修改配置文件,增加Cognos的启动时间。
修改 c8_location /configuration/ cogconfig.prefs
增加以下两个配置
ServiceWaitInterval=
*默认是500,代表0.5秒
ServiceMaxTries=
*默认360,代表倍数
默认应该是3分钟超时。我增加到 1000*500,8分多钟。
4、CFG-ERR-0103
这个问题是在我们的Cognos测试服务器上遇到的,首先想到的就是BAIDU,发现也有不少朋友碰到这个问题。
中文的鸟文的解决办法也看了不少,但是都没能解决我的问题。非常苦恼的情况下,我死马当活马医。
我将 Cognos 8 Service 节点下的 Cognos8.3 删除,又重新建了一个,OK,神奇的解决了问题。
排查原因,发现是因为不小心在测试服务器的msconfig里将cognos的服务禁止了,服务禁用了,当然启不起来。
总结了下这个问题的原因,应该是因为Cognos主应用无法启起来,已知可能的原因如下:
1、Cognos数据库没有采用UTF-8的字符集(Oracle下常见)
2、系统服务中的Cognos服务被禁用,或受到其他第三方软件限制无法启动
5、CAM-AAA-0027
这个错误是在用Cognos SDK开发SSO的时候遇到的,利用SDk里的例子 TrustedSignonSample 程序实现SSO的时候遇到的。
根据Google搜索得出的结果,0027可能是一个Cognos8.3的BUG,在正常运行的Cognos应用中,可能突然会出现。
但是错误信息和我遇到的不同:The function call to 'CAM_AAA_Authenticate' failed.Reason:"
该问题的解决办法(百度搜的):
1、内存泄漏(最可能的原因)
如果服务器连续正常运行了一段时间后,突然报这个错,绝大部分原因是内存泄漏。
2、配置错误(较少可能)
比如你为 Cognos 配置了超出服务器所能提供的资源时,就会出现这个错。
不过不符合我们的现状,估计这个错误的原因应该还是SSO接口的问题,只是遇到同样的错误代码而已。
后来发现SDK的这个例子,其实是类似代理的方式,通过Cookie传参,登录Cognos的另一个认证,比如NTLM。
并不是如我们早期想的那样,认为 TrustedSignonSample 是一个独立认证。
所以在配置一个命名空间为 TS 的 NTLM 认证后解决了这个问题,其实很简单,应该就是认证找不到指定的命名空间,重试次数达到了10次。
6、CAM-AAA-0064
['CognosJavaProvider']
1. [ ERROR ] CAM-AAA-0064 The function 'CAM_AAA_JniAuthProvider::Configure' failed.
CAM-AAA-0154 Unable to load the Java authentication provider class 'TrustedSignonSample'.
TrustedSignonSample (Unsupported major.minor version 49.0)
83的SDK的实现遇到0027问题后,考虑换到Cognos8.2的生产系统上去试,结果遇到了0064,版本问题,这个问题解决不了。
可能更新JniAuthProvider的jar包可以解决这个问题。