我已经将CQM模型转换为DQM,没有错误,但当我打开一些(2/10)报告时-他们给我一个错误。错误:"XQE-PLN-0131无法生成SQL,因为在子查询中发现了循环引用“,我无法确定为什么在将模型转换为DQM时,子查询将是循环引用的。
我正在尝试运行每个查询并查看错误发生情况,但仍然无法找到它。
发布于 2016-03-28 22:31:13
从CQM转换到DQM dispatcher时,尝试排除sql错误是一件很麻烦的事情。
如果报告很小,可以直接从新模型重新创建它,并在此过程中进行测试。
如果报告很大,定位错误可能非常耗时。
我的建议是,
首先,在框架模型中,确保来自数据源的数据库层查询主题的名称与表名不完全相同。我只是在他们名字的末尾加了一个下划线'_‘。
这可能会修复您的循环引用问题。
不可避免地,你会有一些报告仍然失败。我建议你顺势而为,设立一个二级调度员。让您的主调度器为DQM,但设置一个CQM调度器。我在同一台服务器上做了这件事,没有任何问题。
虽然DQM服务器将激活所有服务,但CQM应该只在Cognos Configuration->Environment->IBM Cognos services中将以下内容设置为True:
代理服务批处理报告服务传送服务Dispatcher服务作业服务监视服务查询服务报告数据服务报告服务关系元数据服务
所有剩余的服务都应设置为“False”。
在环境设置中,确保外部调度程序URI、内部调度程序URI和外部应用程序的调度程序URI具有与DQM安装不同的端口号。对我来说,DQM是默认的9300,而CQM使用的是9301。
您的CQM可以指向与您的DQM相同的Notification Store、HTAS Store。
在Cognos Gateway上,不要将CQM dispatcher添加到Gateway的Dispatcher URI列表中。这将导致请求在DQM繁忙时转到CQM分派器,这将导致许多请求失败。将使用路由规则将请求路由到CQM。
在Congnos配置中的"Dispatchers and Services“下,分别为DQM和CQM dispatchers指定一个不同的”Server Group“名称。
编辑您的包的属性,选中“高级路由”,然后编辑路由选择集。您可以在此处定义新的路由选择集。您可以将包发布两次,一次作为DQM包,另一次作为CQM包(不同的名称,即。将_CQM添加到名称中)。对于您的DQM,添加'DQM报告‘的'Type Routing Sets’。对于CQM,添加'CQM Reports‘的'Type Routing sets’。
接下来,返回Cognos Administration。
从“Dispatcher and Services”-> "Specify Routing Rules“(指定路由规则)(顶部的图标)设置将DQM报告发送到DQM Dispatchers Group的程序包路由规则。设置将CQM报告发送到CQM Dispatcher服务器组的路由规则。然后设置一个路由规则,该规则将任何包作为一个通用包发送到底部的DQM Dispatchers。
现在您可以进入您的报告,将它们指向DQM包。如果它们起作用了,就让它们留在那里。如果没有,请将其指向CQM包,并将其添加到列表中。
现在,您可以运行所有报告,并且将报告转换为DQM不会阻碍您的迁移项目。现在查看您的CQM包列表,并使用DQM包逐个重新创建它们。
如果这样做,并确保所有新报告都是DQM,那么最终您就可以使用CQM包了。当那个光辉的日子到来时,您只需关闭CQM调度程序服务,您将是100%的DQM 64位好东西。
https://stackoverflow.com/questions/36203008
复制相似问题