【发布时间】:2016-03-28 22:31:13
【问题描述】:
我已经将 CQM 模型转换为 DQM 没有错误,但是当我打开一些 (2/10) 报告时 - 他们给了我一个错误。 错误:“XQE-PLN-0131 无法生成 SQL,因为在子查询中找到循环引用” 我无法弄清楚为什么当模型转换为 DQM 时子查询会被循环引用。
我正在尝试运行每个查询并查看错误发生但仍然无法找到它。
【问题讨论】:
标签: cognos cognos-10 cognos-bi
我已经将 CQM 模型转换为 DQM 没有错误,但是当我打开一些 (2/10) 报告时 - 他们给了我一个错误。 错误:“XQE-PLN-0131 无法生成 SQL,因为在子查询中找到循环引用” 我无法弄清楚为什么当模型转换为 DQM 时子查询会被循环引用。
我正在尝试运行每个查询并查看错误发生但仍然无法找到它。
【问题讨论】:
标签: cognos cognos-10 cognos-bi
在从 CQM 转换为 DQM 调度程序时尝试解决 sql 错误是一件麻烦事。
如果报告很小,请直接从新模型重新创建它,并在此过程中进行测试。
如果报告很大,查找错误可能非常耗时。
我建议这样做,
首先,在您的框架模型中,确保您的数据库层从数据源查询主题的名称与您的表名称不完全相同。我只是在他们名字的末尾添加了一个下划线“_”。
这可能会解决您的循环引用问题。
总是会有一些仍然失败的报告。我建议你顺势而为,设置一个二级调度员。让您的主要调度程序是 DQM,但设置一个 CQM 调度程序。我在同一台服务器上执行此操作没有任何问题。
虽然 DQM 服务器将激活所有服务,但 CQM 仅应在 Cognos Configuration->Environment->IBM Cognos Services 中将以下设置设置为 True:
代理服务 批量报告服务 送货服务 调度服务 工作服务 监控服务 查询服务 报告数据服务 报告服务 关系元数据服务
所有剩余的服务都应该设置为“False”。
在环境设置中,确保您的外部调度程序 URI、内部调度程序 URI 和外部应用程序的调度程序 URI 与您的 DQM 安装具有不同的端口号。对我来说,DQM 是默认的 9300,而 CQM 使用的是 9301。
您的 CQM 可以指向与您的 DQM 相同的 Notification Store、HTAS Store。
在您的 Cognos 网关上,不要将您的 CQM 调度程序添加到网关的调度程序 URI 列表中。这将导致请求在 DQM 繁忙的任何时候转到您的 CQM 调度程序,这将导致许多请求失败。请求将使用路由规则路由到 CQM。
在“调度程序和服务”下的 Congnos 配置中,为您的 DQM 和 CQM 调度程序分别指定一个不同的“服务器组”名称。
Edit Properties on your Packages ,检查“高级路由”,然后编辑路由集。您可以在此处定义新的路由集。您可以发布您的包两次,一次作为 DQM 包,另一次作为 CQM 包(不同的名称,即在名称中添加 _CQM)。对于您的 DQM,添加“DQM 报告”的“类型路由集”。对于 CQM,添加“CQM 报告”的“类型路由集”。
接下来,返回 Cognos Administration。
从“调度程序和服务”->“指定路由规则”(顶部的图标) 设置将 DQM 报告发送到 DQM 调度程序服务器组的包路由规则。设置向 CQM 调度程序服务器组发送 CQM 报告的路由规则。然后设置一个路由规则,将 ANY 包发送到底部的 DQM 调度程序组,作为 Catch-All。
现在您可以进入您的报告,将它们指向 DQM 包。如果它们有效,请将它们留在那里。如果没有,请将它们指向 CQM 包,并将它们添加到列表中。
现在您可以让所有报告正常工作,将报告转换为 DQM 不会阻碍您的迁移项目。现在浏览您的 CQM 包列表,并使用 DQM 包一次重新创建它们。
如果您这样做,并确保所有新报告都是 DQM,那么您最终将完成 CQM 包。当那个辉煌的日子到来时,您可以简单地关闭 CQM 调度程序服务,您将是 100% DQM 64 位善良。
【讨论】: