MDXLIMITFORMULARECURSION

您可以使用 MDXLIMITFORMULARECURSION 配置设置来消除对 MDX 计算成员或公式允许的执行级别数的 Essbase Server 限制。

如果设置为 false,MDXLIMITFORMULARECURSION 不会阻止 Essbase Server 超过 128 个 MDX 公式执行级别。如果您知道公式/计算成员中的递归执行最终将终止,并且您希望 Essbase 继续处理,则可以使用此方法。

语法

MDXLIMITFORMULARECURSION [appname [dbname]] TRUE | FALSE
  • appname - 可选。指定要为其设置或删除限制的应用程序。如果为 appname 指定值,但没有为 dbname 指定值,则该设置将应用于指定应用程序中的所有多维数据集。要为特定多维数据集启用设置,必须指定应用程序和多维数据集。

  • dbname - 可选。指定要为其设置限制的 appname 指定的应用程序中的数据库(多维数据集)。如果为 dbname 指定值,但未为 appname 指定值,则将忽略您的规范。

  • TRUE - 对 MDX 公式执行级别数施加 128 的限制。默认设置为 TRUE。

  • FALSE - 对 MDX 公式执行级别的数量没有限制。

说明

MDX 计算的成员或公式执行可以是递归的(例如,公式可以引用自身,计算成员可以引用自身)。默认情况下, Essbase 会限制 MDX 公式执行级别的数量,因为执行级别过高的公式可能会导致堆栈溢出错误并导致服务器失败。但是,将 MDXLIMITFORMULARECURSION 设置为 FALSE 会阻止 Essbase 施加限制。如果您知道公式/计算成员中的递归执行最终将终止,并且希望递归深度大于 128,则可以使用此设置。

如果 MDX 公式达到 128 个执行级别并且未设置 MDXLIMITFORMULARECURSION 或将其设置为 TRUE,则 Essbase 将停止处理该公式并在应用程序日志中写入错误消息。如果公式达到 128 个执行级别并且 MDXLIMITFORMULARECURSION 设置为 FALSE,则 Essbase 将继续处理该公式。

注意:

在将 MDXLIMITFORMULARECURSION 设置为 FALSE 之前,请确保大纲中的 MDX 公式不是无限递归的;例如,请确保公式不相互依赖。