存档

‘Cognos学习’ 分类的存档

cognos常见错误总结

2009年11月5日 admin 没有评论

1、CAM-CRP-1085 An error occurred while verifying that the security provider classes were loaded. Reason: java.lang.ClassNotFoundException: org.bouncycastle134.jce.provider.BouncyCastleProvider

描述:此问题是在cognos8.4服务启动时报的错

环境:AIX5304 、JDK1.5、Oracle10g

解决方法:

1. 确保将JAVA_HOME 环境变量设置为JRE 位置。

例如,要将JAVA_HOME 设置为已在使用的JRE,路径为Java 位置/bin/jre/版本。

2. 将bcprov-jdknn-nnn.jar 文件从c8 位置/bin/jre/版本/lib/ext 目录复制到Java 位

置/jre/lib/ext 目录。

********************************************************************

CFG-ERR-0106 IBM Cognos Configuration did not receive a response from the IBM Cognos 8 service in the time allotted.
Check that IBM Cognos 8 service is available and properly configured.

描述:此问题是在cognos8.4服务启动时报的错

环境:AIX5304 、JDK1.5、Oracle10g

参考方法1:c8_location/configuration/cogconfig.prefs文件中加
ServiceWaitInterval=number of milliseconds
ServiceMaxTries=number of times

参考方法2:当cogserver.log与tomcat.log都没有报错信息,可能是由于内容存储库连接不上造成,

首先检查p2pd/WEB-INF/lib/classes12.jar是否存在,不存在则需要添加此JAR包,倘若存在则查看localhost_log.yyyy-mm-dd.txt,找出错误根源,如果异常如下:

javax.servlet.ServletException: Exception processing JAR at resource path /WEB-INF/lib/classes12.jar

有可能是你的JAR包的版本不对,再就是编译过程发生了异常,需要删除c8/tomcat4.1.27/work/Standalone/localhost目录下的所有文件,然后重新启动

********************************************************

[ ERROR ] CAM-AAA-0146 The namespace ‘cognosldap’ is not available.

CAM-AAA-0064 The function ‘CAM_AAA_Initialize’ failed.

CAM-AAA-0026 The function call to ‘AS_AccManProcessInitialize’ failed with error code: ‘-113′

环境:AIX5304 、JDK1.5、Oracle10g

参考方法:环境变量LIBPATH设置错误,正确配置如:LIBPATH=$ORACLE_HOME/lib32:$ORACLE_HOME/ctx/lib:/cognos/c8/bin

参考地址1:http://www-01.ibm.com/support/docview.wss?uid=swg21346507

参考地址2:http://www-01.ibm.com/support/docview.wss?rs=3442&context=SS9RTN&context=SSWGNW&q1=CAM-AAA-0146&uid=swg21341192&loc=en_US&cs=utf-8&lang=en

**************************************************************************

CAM-AAA-0064 The function ‘CAM_AAA_Initialize’ failed.CCL_ASSERT(myGetIf !=0);include/CAM_AAA_JniAuthProvider.h(167): CCLAssertError: CCL_THROW:”

OR

CAM-AAA-0022 The provider ‘/wasapp/reportnetCM/crn/./bin/libCAM_AAA_Auth3rdParty.so’ could not load.”

环境:AIX5304 、JDK1.5、Oracle10g

解决方法:给c8/bin/libCAM_AAA_Auth3rdParty.so授权

chmod 755 libCAM_AAA_Auth3rdParty.so

参考地址:http://www-01.ibm.com/support/docview.wss?uid=swg21346507

分类: Cognos学习 标签:

cognos8.2与cognos8.4内容存储库

2009年10月26日 admin 评论已被关闭

今天在自己的机器上装了一套cognos8.4的服务器器端,将内容存储库配置到了cognos8.2的content store上,结果cognos8.4没有启动起来,连8.2也启动不起来了,经过三个多小时的奋战,最终发现,cognos8.4链接到cognos8.2 content store后,在cognos8.4启动的时候会自动更新cognos8.2的内容存储库,修改掉内容存储库的东西,但是,不会更新cognos8.2内容存储库中的开发资料,及简单的配置参数,最终将升级后的内容存储库与cognos8.2的对比,发现有以下表做了改动:

CMCAPACITY  在cognos8.4中将PATH修改为了CMPATH  存储的是URL的配置,dispatcher
cmobjects
cmobjprops11  存储的数据源配置的细节,如连接字符串,该立方体的位置等.
cmobjprops26 存储有关包的 在C8中的输入\输出过程中选定的属性的数据。
CMOBJPROPS6存储包在FM发布过程的细节。

需要恢复的数据表(将8.2的数据重新进行恢复):

cmcakeys  内容存储库安装时的初始化信息
cmclasses 内容存储库安装时的初始化信息
cmsysprops 存储内容存储库版本信息

需要重新修复的表:

执行:c8\configuration\schemas\delivery\oracle\下的NC_DROP_ORA.sql,执行过程会报错,但一定要执行完,然后在重新启动。

其中CMCAPACITY是将字段名修改掉了,其他各表均是删除了多余的列,将删除的列添加后,cognos8.2便可继续使用。

分类: Cognos学习 标签:

BI之道—数据的价值

2009年9月25日 admin 评论已被关闭

BI商务智能,是将数据转为知识。

转换的数据是否一定具有其商业的价值呢?是否可以作为商业发展的指南针?可以的话,哪么市场的“双向反身性互动关系”中“操控”何以解释,不可以,“认知”又何以解释?市场的均衡与发展,用什么可以衡量,数据???

待续……

分类: Cognos学习 标签:

Cognos 修改数据源

2009年8月12日 admin 没有评论

内容服务器:

1、修改cognos连接的内容服务器,一般会通过xManager工具进行修改,命令如下:

首先连接到制定的目录:c8/bin

其次设置环境变量:运行 .  ~/.profile 命令,然后设置IP:export DISPLAY=IP:0.0

再就是运行:./cogconfig.sh

在弹出的窗口中修改:Data Access 选项,设置您的内容服务器IP地址,还有用户名,密码,Service ID

当设置完毕后,点击右键进行测试,通过后进行保存。

*************************************************

如果报表与CUBE连接的是同一台数据库,则也需要进行修改

报表

Rloap 模式的:

方法1、需要通过修改TNS,进行数据源指向的修改

方法2、

(1)添加一个TNS连接指向另一个数据源,

(2)然后在cognos web管理页面中新建数据源,Tools—directory—datasource,点击new datasource,添加一个数据源,将本数据源指向您新建的TNS,

(3)在本地修改相应的IQD文件指向的新的数据源名称,然后进行重新发布

(4)修改您的报表连接的数据包,点击报表的:set property—general— package(link to package..)选择您新发布的数据包

方法3、

(1)添加一个新的TNS,指向的新的数据源

(2)在WEB中的Tools—directory—datasource中,点击您要修改的数据源名称,点击set property—connection—点击connection Sring文本框右边的编辑按钮,在SQL*Net connect string文本框中输入您配置好的TNS名称,然后保存。

注:当您发布新的IQD时,如果数据源名称相同,此时会覆盖老的数据源连接(TNS名称会覆盖),所以发布后要再次检查一下数据源有没有指向错误。

(如果要修改报表指向的CUBE模型,也要再次进行修改,每个CUBE就是一个数据源)

MOLAP模式:

在生成CUBE时可能会连接到不同的数据源,一般会在您的shell脚本或配置文件中进行配置,此时要根据您的配置情况自行修改。

分类: Cognos学习 标签:

什么是LDAP(2)

2009年8月6日 admin 评论已被关闭


1.1. LDAP是什么

LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。它是基于X.500标准的,但是简单多了并且可以根据需要定制。与X.500不同,LDAP支持TCP/IP, 这对访问Internet是必须的。LDAP的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到。
简单说来,LDAP是一个得到关于人或者资源的集中、静态数据的快速方式。
LDAP是一个用来发布目录信息到许多不同资源的协议。通常它都作为一个集中的地址本使用,不过根据组织者的需要,它可以做得更加强大。
1.2. LDAP是电话簿
LDAP其实是一电话簿,类似于我们所使用诸如NIS(Network Information Service)、DNS (Domain Name Service)等网络目录,也类似于你在花园中所看到的树木。
1.3. LDAP是不是数据库
不少LDAP开发人员喜欢把LDAP与关系数据库相比,认为是另一种的存贮方式,然后在读性能 上进行比较。实际上,这种对比的基础是错误的。LDAP和关系数据库是两种不同层次的概念,后者是存贮方式(同一层次如网格数据库,对象数据库),前者是 存贮模式和访问协议。LDAP是一个比关系数据库抽象层次更高的存贮概念,与关系数据库的查询语言SQL属同一级别。LDAP最基本的形式是一个连接数据 库的标准方式。该数据库为读查询作了优化。因此它可以很快地得到查询结果,不过在其它方面,例如更新,就慢得多。
从另一个意义上 LDAP是实现了指定的数据结构的存贮,它是一种特殊的数据库。但是LDAP和一般的数据库不同,明白这一点是很重要的。 LDAP对查询进行了优化,与写性能相比LDAP的读性能要优秀很多。
就象Sybase、Oracle、Informix或Microsoft的数据库管理系统 (DBMS)是用于处理查询和更新关系型数据库那样,LDAP服务器也是用来处理查询和更新LDAP目录的。换句话来说LDAP目录也是一种类型的数据 库,但不是关系型数据库。要特别注意的是,LDAP通常作为一个hierarchal数据库使用,而不是一个关系数据库。因此,它的结构用树来表示比用表 格好。正因为这样,就不能用SQL语句了。
2. LDAP的特点
2.1. LDAP的优势
2.1.1 跨平台
LDAP最大的优势是:可以在任何计算机平台上,用很容易获得的而且数目不断增加的LDAP的客户端程序访问LDAP目录。而且也很容易定制应用程序为它加上LDAP的支持。
LDAP协议是跨平台的和标准的协议,因此应用程序就不用为LDAP目录放在什么样的服务器上 操心了。实际上,LDAP得到了业界的广泛认可,因为它是Internet的标准。产商都很愿意在产品中加入对LDAP的支持,因为他们根本不用考虑另一 端(客户端或服务端)是怎么样的。LDAP服务器可以是任何一个开发源代码或商用的LDAP目录服务器(或者还可能是具有LDAP界面的关系型数据库), 因为可以用同样的协议、客户端连接软件包和查询命令与LDAP服务器进行交互。与LDAP不同的是,如果软件产商想在软件产品中集成对DBMS的支持,那 么通常都要对每一个数据库服务器单独定制。
2.1.2 费用及维护
不象很多商用的关系型数据库,你不必为LDAP的每一个客户端连接或许可协议付费。
大多数的LDAP服务器安装起来很简单,也容易维护和优化。
2.1.3 复制技术
LDAP服务器可以用”推”或”拉”的方法复制部分或全部数据,例如:可以把数据”推”到远程 的办公室,以增加数据的安全性。复制技术是内置在LDAP服务器中的而且很容易配置。如果要在DBMS中使用相同的复制功能,数据库产商就会要你支付额外 的费用,而且也很难管理。
2.1.4 允许使用ACI
LDAP允许你根据需要使用ACI(一般都称为ACL或者访问控制列表)控制对数据读和写的权 限。例如,设备管理员可以有权改变员工的工作地点和办公室号码,但是不允许改变记录中其它的域。ACI可以根据谁访问数据、访问什么数据、数据存在什么地 方以及其它对数据进行访问控制。因为这些都是由LDAP目录服务器完成的,所以不用担心在客户端的应用程序上是否要进行安全检查。
2.2. LDAP存储什么数据
LDAP对于这样存储这样的信息最为有用:也就是数据需要从不同的地点读取,但是不需要经常更新。例如,这些信息存储在LDAP目录中是十分有效的:
l 公司员工的电话号码簿和组织结构图
l 客户的联系信息
l 计算机管理需要的信息,包括NIS映射、email假名,等等
l 软件包的配置信息
l 公用证书和安全密匙
2.3. 什么时候该用LDAP存储数据
大多数的LDAP服务器都为读密集型的操作进行专门的优化。因此,当从LDAP服务器中读取数 据的时候会比从专门为OLTP优化的关系型数据库中读取数据快一个数量级。也是因为专门为读的性能进行优化,大多数的LDAP目录服务器并不适合存储需要 需要经常改变的数据。例如,用LDAP服务器来存储电话号码是一个很好的选择,但是它不能作为电子商务站点的数据库服务器。
如果下面每一个问题的答案都是”是”,那么把数据存在LDAP中就是一个好主意。
l 需要在任何平台上都能读取数据吗?
l 每一个单独的记录项是不是每一天都只有很少的改变?
l 可以把数据存在平面数据库(flat database)而不是关系型数据库中吗?换句话来说,也就是不管什么范式不范式的,把所有东西都存在一个记录中(差不多只要满足第一范式)。
最后一个问题可能会唬住一些人,其实用平面数据库去存储一些关系型的数据也是很一般的。例如, 一条公司员工的记录就可以包含经理的登录名。用LDAP来存储这类信息是很方便的。一个简单的判断方法:如果可以把保数据存在一张张的卡片里,就可以很容 易地把它存在LDAP目录里。
3. LDAP的基本模型
3.1 信息模型:描述LDAP的信息表示方式
在LDAP中信息以树状方式组织,在树状信息中的基本数据单元是条目,而每个条目由属性构成, 属性中存储有属性值;LDAP中的信息模式,类似于面向对象的概念,在LDAP中每个条目必须属于某个或多个对象类(Object Class),每个Object Class由多个属性类型组成,每个属性类型有所对应的语法和匹配规则;对象类和属性类型的定义均可以使用继承的概念。每个条目创建时,必须定义所属的对 象类,必须提供对象类中的必选属性类型的属性值,在LDAP中一个属性类型可以对应多个值。
在LDAP中把对象类、属性类型、语法和匹配规则统称为Schema,在LDAP中有许多系统 对象类、属性类型、语法和匹配规则,这些系统Schema在LDAP标准中进行了规定,同时不同的应用领域也定义了自己的Schema,同时用户在应用 时,也可以根据需要自定义Schema。这有些类似于XML,除了XML标准中的XML定义外,每个行业都有自己标准的DTD或DOM定义,用户也可以自 扩展;也如同XML,在LDAP中也鼓励用户尽量使用标准的Schema,以增强信息的互联互通。
在Schema中最难理解的是匹配规则,这是LDAP中为了加快查询的速度,针对不同的数据类型,可以提供不同的匹配方法,如针对字符串类型的相等、模糊、大于小于均提供自己的匹配规则。
3.2 命名模型:描述LDAP中的数据如何组织
LDAP中的命名模型,也即LDAP中的条目定位方式。在LDAP中每个条目均有自己的DN和RDN。DN是该条目在整个树中的唯一名称标识,RDN是条目在父节点下的唯一名称标识,如同文件系统中,带路径的文件名就是DN,文件名就是RDN。
3.3 功能模型:描述LDAP中的数据操作访问
在LDAP中共有四类10种操作:查询类操作,如搜索、比较;更新类操作,如添加条目、删除条 目、修改条目、修改条目名;认证类操作,如绑定、解绑定;其它操作,如放弃和扩展操作。除了扩展操作,另外9种是LDAP的标准操作;扩展操作是LDAP 中为了增加新的功能,提供的一种标准的扩展框架,当前已经成为LDAP标准的扩展操作,有修改密码和StartTLS扩展,在新的RFC标准和草案中正在 增加一些新的扩展操作,不同的LDAP厂商也均定义了自己的扩展操作。
3.4 安全模型:描述LDAP中的安全机制
LDAP中的安全模型主要通过身份认证、安全通道和访问控制来实现。
3.4.1 身份认证
在LDAP中提供三种认证机制,即匿名、基本认证和SASL(Simple Authentication and Secure Layer)认证。匿名认证即不对用户进行认证,该方法仅对完全公开的方式适用;基本认证均是通过用户名和密码进行身份识别,又分为简单密码和摘要密码认 证;SASL认证即LDAP提供的在SSL和TLS安全通道基础上进行的身份认证,包括数字证书的认证。
3.4.2 通讯安全
在LDAP中提供了基于SSL/TLS的通讯安全保障。SSL/TLS是基于PKI信息安全技 术,是目前Internet上广泛采用的安全服务。LDAP通过StartTLS方式启动TLS服务,可以提供通讯中的数据保密性、完整性保护;通过强制 客户端证书认证的TLS服务,同时可以实现对客户端身份和服务器端身份的双向验证。
3.4.3 访问控制
虽然LDAP目前并无访问控制的标准,但从一些草案中或是事实上LDAP产品的访问控制情况, 我们不难看出:LDAP访问控制异常的灵活和丰富,在LDAP中是基于访问控制策略语句来实现访问控制的,这不同于现有的关系型数据库系统和应用系统,它 是通过基于访问控制列表来实现的,无论是基于组模式或角色模式,都摆脱不了这种限制。
在使用关系型数据库系统开发应用时,往往是通过几个固定的数据库用户名访问数据库。对于应用系 统本身的访问控制,通常是需要建立专门的用户表,在应用系统内开发针对不同用户的访问控制授权代码,这样一旦访问控制策略变更时,往往需要代码进行变更。 总之一句话,关系型数据库的应用中用户数据管理和数据库访问标识是分离的,复杂的数据访问控制需要通过应用来实现。
而对于LDAP,用户数据管理和访问标识是一体的,应用不需要关心访问控制的实现。这是由于在LDAP中的访问控制语句是基于策略语句来实现的,无论是访问控制的数据对象,还是访问控制的主体对象,均是与这些对象在树中的位置和对象本身的数据特征相关。
在LDAP中,可以把整个目录、目录的子树、制定条目、特定条目属性集或符合某过滤条件的条目作为控制对象进行授权;可以把特定用户、属于特定组或所有目录用户作为授权主体进行授权;最后,还可以定义对特定位置(例如IP地址或DNS名称)的访问权。
4. LDAP数据结构
LDAP是实现了指定的数据结构的存贮,它包括以下可以用关系数据库实现的结构要求:树状组织、条目认证、类型定义、许可树形记录拷贝。
4.1 树状组织
无论是X500还是LDAP都是采用树状方式进行记录。每一个树目录都有一个树根的入口条目, 子记录全部是这一根条目的子孙。这是目录与关系数据类型最大的区别(关系数据库的应用结构也可实现树状记录)。因此,把目录看作是更高级的树状数据库也未 尝不可,只不过除此外,它不能实现关系存贮的重要功能。
4.2 条目和条目认证
LDAP是以条目作为认证的根据。ROOT的权限认证与目录本身无关,但除此外所有条目的认证权限由条目本身的密码进行认证。LDAP可以配置成各种各样不同的父子条目权限继承方式。
每一个条目相当于一个单一的平面文本记录,由条目自身或指定的条目认证进行访问控制。因此,LDAP定义的存贮结构等同于一批树状组织的平面数据库,并提供相应的访问控制。
条目中的记录以名-值对的形式存在,每一个名值对必须由数据样式schema预定义。因此,LDAP可以看作是以规定的值类型以名值对形式存贮在一系列以树状组织的平面数据库的记录的集合。
4.3 数据样式(schema)
数据样式schema是针对不同的应用,由用户指定(设计)类和属性类型预定义,条目中的类 (objectclass)和属性必须在在LDAP服务器启动时载入内存的schema已有定义。因此,AD活动目录中的条目记录就必须符合Active Directory的schema中。如果已提供的schema中的定义不够用,用户可以自行定义新的schema.
在http://ldap.akbkhome.com/index.php中可以看到常用的schema。
4.4 对象类型(objectClass)
因为LDAP目录可以定制成存储任何文本或二进制数据,到底存什么要由你自己决定。LDAP目 录用对象类型(objectclass)的概念来定义运行哪一类的对象使用什么属性。在几乎所有的LDAP服务器中,你都要根据自己的需要扩展基本的 LDAP目录的功能,创建新的对象类型或者扩展现存的对象类型。
条目中的记录通过objectclass实现分类,objectClass是一个继承性的类定义,每一个类定义指定必须具备的属性。如某一条目指定必须符合某个类型,则它必须具备超类所指定的属性。
通过objectclass分类,分散的条目中的记录就实际上建立了一个索引结构,为高速的读查询打下了基础。Objectclass也是过滤器的主要查询对象。
4.5 过滤器和语法
LDAP是一个查询为主的记录结构,无论是何种查询方式,最终都由过滤器缺点查询的条件。过滤器相当于SQL中的WHERE子句。任何LDAP的类过滤和字符串都必须放在括号内,如(objectclass=*),指列出所有类型的记录(不过分类)。
可以使用=,>=,<=,~=(约等于)进行比较,如(number<=100)。合并条件是最怪的,必须把操作符放在两个操作对象的前面而不是中间,单一操作对象用括号括起来。如
l A与B,不是A&B,而是(&(A)(B))。
l 或使用”|”表示;
l 非使用”!”表示。
l 对于”与”,或”或”在操作符后可以跟多个条件表达式,但非后则只参是单个表达式。
详见RFC1558。
4.6 树移植
LDAP最重要的特性和要求并不是读性能,而是扩展性。这一特性是通过树移植和树复制实现的。 按LDAP的RFC要求,LDAP目录应该可以任意地在不同的目录间连接、合并并实现自动复制,及自动性同步。这意味着用户可以在任一LDAP中访问条 目,而不用管其中某一部分是否复制自全世界另一目录中的记录,同时另一目录中的记录同样在正常运作。
这一特性如果在关系数据库中实现,意味着要使用程序化的非规范化预复制。类似于汇总帐目的设计。
4.7 LDIF交换文件
LDIF是LDAP约定的记录交换格式,以平面文本的形式存在,是大部分LDAP内容交换的基础,如拷贝、添加、修改等操作,都是基于LDIF文件进行操作。
4.8 JAVA或CORBA对象串行化存储
网络高效率的访问加上JAVA的跨平台能力,当把JAVA或CORBA对象串行化后存储到LDAP目录上时,可以产生非同一般的集成效果–实际上,这正是EJB和.NET的网络定位基础技术。
使用JAVA或CORBA对象存储时,必须首先让LDAP服务支持该对象定义,也就是说包含qmail.schema或corba.schema。
JAVA必须存储在objectclass=javacontainer的条目中,而且必须带 有cn属性,这意味着除非该JAVA类专门实现了DirContext接口,对于大多数JAVA类来说,只能采用DirContext代替Context 实现bind的添加操作。取出JAVA类相对要简单得多,只需使用context.lookup()获得该对象的句柄,然后强制造型成所需要的对象就可以 了,如:
Person p=(Person)contex.lookup(“cn=elvis,dc=daifu,dc=com”);
这个句法在EJB的程序中,是经常用到的。
使用CORBA的跨语言性质,使用CORBA存储对象比JAVA更加诱人,这意味着所存储的对 象可以被任何语言编写的客户端访问。其实,微软的.net说到底也非常简单,无非是把COM对象存储到微软自家的目录ActiveDirectory里 面,从而可以在网络范围内使用任何微软平台的语言进行对象访问而已。众所周知,COM就是与CORBA相对的微软规范。
使用对象串行化技术,可以把常用对象如某个打印机,某个客户直接存储到LDAP中,然后快速获 取该对象的引用,这样,就比把对象信息存储到关系数据库中,分别取出属性,然后再初始化对象操作的做法,效率要高得多了。这是LDAP目前比普通关系数据 库存储要优秀的地方,而对象数据库还不成熟。

LDAP协议常见的命名格式

LDAP协议中采用的命名格式, 因为我们需要通过名字信息访问目录对象,所以名字格式对于用户或者应用程序非常重要。活动目录支持大多数的名字格式类型。较为常用的格式有以下两种:
(1)RFC822命名法
这种命名法的标准格式为:object_name@domain_name,形式非常类似于电 子邮件地址,比如Myname@mydomain.com。活动目录为所有的用户提供了这种式的好名字,所以用户可以直接使用该友好名字当作电子邮件地 址,也可以用作登录系统时的账户名。
(2)LDAP URL 和X.500名字
任何一个支持LDAP 的客户都可以利用LDAP名通过LDAP 协议访问活动目录,LDAP 名不像普通的Internet URL 名字那么直观,但是LDAP 名往往隐藏在 应用系统的内部,最终用户很少直接使用LDAP 名。LDAP 名使用X.500 命名规 范,也称为属性化命名法,包括活动目录服务所在的服务器以及对象的属性信息。

分类: Cognos学习 标签: