【问题标题】:DB2 Internal failure occurred in query processor查询处理器中发生 DB2 内部故障
【发布时间】:2016-02-02 12:27:58
【问题描述】:

我们有两个as400,都是V6R1M0,一个是我们的开发,另一个是生产。

请注意,我不太了解 as400。

我创建了一个从 IIS 运行的测试网页来重新创建场景。

该页面有一个按钮,用于创建与 db2 数据库的连接,我使用 SQL 从几个表中进行选择,并用数据填充网格。

这在 DEV 中运行良好,但是当我运行同一个站点但将其指向我们的生产环境时,它会失败并出现错误代码 SQL0901 SQL 系统错误。

注意:我确实检查了 SQL,并且查询本身在两种环境中都有效。

在绿屏上当我检查页面的作业日志时,我收到以下错误:

接下来我检查了谷歌的错误,似乎需要在生产中安装一个 PTF。(我不知道女巫)。它与db2有关。

我们遇到的问题是我们的生产环境中还运行着其他系统,我担心在安装 PTF 时会导致问题...

通过比较 DEV 和 Production,我如何知道要安装什么 PTF?有软件可以比较吗?理想情况下,我只想安装 DEV 中而不是 PRD 中的 PTF。我不知道 PTF 会解决我的问题。

任何帮助将不胜感激。

添加:

当我按 F1 时出现绿屏错误(QQQVECI:未找到外部字段!!!。)我得到以下信息:

当我按 F9 查看详细信息时,我得到以下信息:

【问题讨论】:

  • 在该作业日志页面上,您能否将光标定位在“未找到外部字段!!!”的行上该消息看起来可能是罪魁祸首,可能会提供更多细节。
  • @TracyProbst 我已经添加了针对该错误收到的消息。
  • 谢谢,@Renier。看起来下面关于应用 PTF 的答案是正确的。如果 PTF 应用程序是不可能的,那么最好完全重组您的查询以解决它。当我们不知道真正的根本原因时,这可能会很困难。列出的 PTF 不止一个可以处理此特定错误。
  • 一般来说,正是出于这个原因,您应该始终关注 PTF。

标签: db2 ibm-midrange db2-400


【解决方案1】:

很难确定,但您可能缺少的一般 PTF 应该是 SI47445。不幸的是,这在几年前被 PTF SI47911 取代。后来被 PTF SI50956 取代。而且每一个都有 pre-req 和 co-req PTF。

正如@Charles 所提到的,您的管理员将密切参与其中。很可能在一段时间内什么都做不了,直到可以安排一些停机时间进行维护。

PTF SI47445 是 PTF cume 包 2305 的一部分,该包是 2012 年 11 月初可用的一般修复集合。2013 年至少发布了一个针对 IBM i 6.1 的附加 Cume 包,还有一些从那以后,未知数量的个人 PTF。早在 2012 年就缺少 cume 包的系统与更新的系统之间 PTF 的潜在差异数量可能在数百个 PTF 中。

即使是您的管理员也可能会拒绝尝试找出应用单个 PTF 的正确方法。

一个可能的普遍合适的计划应该是在 2013 年 1 月上旬在您的 DEV 系统上应用 cume 包 2305。这将为全国(或世界各地)的各种早期采用者站点提供几个月的时间) 报告问题并让 IBM 更正这些问题。然后,如果 DEV 看起来不错,您的 PROD 系统可能会在一个月后,即 2013 年 2 月上旬获得相同的 Cume 包。(一些 PTF 组应该与 Cume 包一起使用。)

但这个计划显然没有实际意义。

现在,一个更有可能的计划包括 (1) 记录 DEV 上的 cume 和 group 包,以及 (2) 确定其中每个包的媒体是否仍可供您的管理员在 PROD 上使用。

如果媒体不再可用,则需要考虑一个稍微不同的计划。

【讨论】:

    【解决方案2】:

    您需要让您的 IBM i 管理员参与进来。

    查询处理器发生内部故障肯定表示操作系统中存在需要/或已由 IBM 纠正的错误。

    您的管理员(可能在 IBM 的帮助下)可以确定是否有现有的 PTF 来纠正导致错误的原因。

    然后,您的管理员可以下载并应用 PTF。

    您不太可能下载 PTF,更不用说有权在生产中应用它了。

    【讨论】:

    • 您好,谢谢您的回复,能否请您看看我添加的细节。
    【解决方案3】:

    我同意关于可能的 PTF 的其他答案,但要回答您的问题

    通过比较 DEV 和 Production,我如何知道要安装什么 PTF?有软件可以比对吗?

    IBM 最近增强了IBM Application Runtime Expert 产品来帮助解决这个问题。 ARE 中的新 PTF 支持能够将系统 PTF 级别与:

    • Preventative Service Planning 的最新 PTF 组级别
    • 不同系统上的 PTF 级别,例如。将 PROD 与 DEV 进行比较
    • 指定的 PTF 列表

    此外,如果您愿意,它还可以在目标系统上自动应用缺少的 PTF。

    有关如何利用支持的更多信息,请参阅此blog

    【讨论】:

    • 不清楚 ARE 如何识别所需的 PTF。例子? ARE 是帮助保持系统间一致性和做更多事情的好方法。 OP 应该意识到,在当前可能需要特定的未识别 PTF(较旧的 PTF)而不关注 cume/group PTF 的情况下,它并没有那么直接的帮助。但是,除了专门“修复”这个问题之外,这是一个让 DEV 和 PROD 保持最新状态的良好开端。这很可能是 OP 管理员前进的方式。
    • 该示例在我链接的博客中,但基本上有了新的 PTF 支持,ARE 可以将安装在一个系统 A 上的 PTF 列表与系统 B(以及 C、D、E、... ) 识别那些安装在 A 但未安装在 B 上和安装在 B 上而不安装在 A 上的那些。
    • 是的,但它如何识别 SI47445 是需要的 PTF?仅通过比较两个系统上的 WRKPTFGRP 或比较 DSPPTF 的输出文件,识别差异列表几乎是微不足道的。同样,我支持使用 ARE。只是想知道它在这种情况下是否特别有用。
    • 我不知道是否有任何工具可以告诉您 SI47445 是所需的 PTF,但 ARE 可以更轻松地查看实际差异,因此您无需搜索所有 PTF(您的示例也可以)。无论如何,我认为这并不重要,因为您的生产环境应该与您的开发环境相匹配(或者如果有的话,也可以是 staging/qa),那么谁在乎它是哪个 PTF?只需安装所有缺少的 PTF。
    • 完全同意。相当短的暂存/测试期,然后完成(尤其是在支持终止之前)。
    猜你喜欢
    • 1970-01-01
    • 2012-04-14
    • 2019-01-02
    • 2012-11-26
    • 2010-11-04
    • 1970-01-01
    • 2011-08-26
    • 1970-01-01
    • 2012-04-29
    相关资源
    最近更新 更多