在Informix 12上运行sperform时出现seg错误

时间:2016-05-12 14:54:10

标签: informix

我对Informix很陌生,而且我尝试使用sperform运行屏幕,但是当我尝试查询时,它只是段故障。到目前为止,我有:

  • 安装了Ubuntu服务器12(64位)
  • 安装了Dev套件和运行时7.50
  • 安装了Informix引擎12.10
  • 验证它已全部启动并运行;可以与dbaccess连接
  • 创建了一个示例数据库&表并插入几行
  • 使用表格中的isql生成表单
  • 使用sperform
  • 运行生成的表单

当我尝试使用表单查询时,我得到了一个"分段错误(核心转储)"它退出了。谁能帮我理解为什么?这不是基本的吗?

1 个答案:

答案 0 :(得分:2)

初步答复

是;这是基本的。没有;它不应该崩溃。基本上没有任何情况下该序列应该崩溃。您应该向IBM提交错误报告。

唯一可能存在问题的问题是ISQL可能是使用比服务器安装的旧版CSDK构建的,并且可能存在意外的不兼容性。它应该有效,但偶尔会出现漏洞。如果你想探索如何证明这种可能性,请说明。它有点繁琐,但可以帮助您正常运行,同时问题得到正式解决。

扩展答案

  

YES!我想尝试解决这个问题。

在我看来,第一步是查看ISQL(Informix SQL)在单独安装时是否正确运行 - 而不是在与Informix服务器代码混合时运行。它应该在两种环境中都可以工作,但是新的服务器代码可能已经改变了导致旧工具代码中断的东西。

因此,重新安装Informix SQL(以及其他开发工具,如果您需要,但您可以将这些工具保存到您只有ISQL的POC之前)到新目录中。假设您的服务器安装在/opt/informix;您可以在/opt/isql中安装工具。 (无需从/opt/informix下卸载工具。)

  • 将服务器sqlhosts文件(从/opt/informix/etc/sqlhosts)复制到新的/opt/isql/etc/sqlhosts
  • 更改INFORMIXDIR=/opt/isql
  • 将新值添加到路径的前面(PATH=$INFORMIXDIR/bin:$PATH)。
  • 担心LD_LIBRARY_PATH的设置 - 您希望从/opt/isql/lib下的图书馆中选择图书馆,而不是/opt/informix/lib下的图书馆。
  • 保持INFORMIXSERVER不变;你仍然会和同一个数据库服务器通话。

您现在应该尝试(重新)生成表单文件并运行它。只需一点点运气,它现在就可以使用了。

  

好的,有效!不知道这是不是一件好事,但我们会尝试将这种改变投入生产。

它让你去;非常好。对我而言,工具发布的质量保证流程的基本原理并未破裂,这也让我感到宽慰。该产品在为其开发的环境中运行时可以正常工作。

令人讨厌的是,服务器的后续版本发生了变化,因此较旧版本的工具不再适用于较新的服务器。它应该没问题。但是,为工具和服务器运行单独的INFORMIXDIR值并不是闻所未闻。如果服务器位于单独的机器上,则隔离将是不可避免的 - 工具将使用与服务器使用的INFORMIXDIR不同的单独INFORMIXDIR(忽略NFS文件系统等)

  

我的步骤中是否有可能导致某些内容被覆盖?

没有。经典的“TEN规则(工具,引擎,网络)” - 在服务器之前(在启用网络的服务器版本之前)安装工具或多或少适用,并且就是您所做的。 20年前,单独的网络版服务器不再具有相关性,但引擎之前的工具(“TE的规则”并没有削减它)通常是正确的。

由于解决方法有效,我们需要先了解一下:这对你意味着什么?

  1. 您有一个可以正常使用的解决方案。
  2. 运行程序时,需要注意环境设置。
    • 使用工具(Informix 4GL,Informix SQL)的程序将与INFORMIXDIR=/opt/isql及后续环境设置一起运行。
    • 服务器安装的程序(DB-Export,DB-Import,ON-Stat等)将与INFORMIXDIR=/opt/informix及后续环境设置一起运行。
    • 如果您愿意,可以在/opt/isql/bin中为您希望开发人员或用户使用的/opt/informix/bin程序设置脚本。
    • /opt/isql/bin中的脚本将为服务器正确设置环境,然后执行服务器程序。
    • /opt/informix/bin中的脚本将类似地为工具正确设置环境,然后执行工具程序。
    • 在每个目录中,假设您小心,您有一个实际设置环境并运行其他程序的脚本;程序名称只是(符号?)链接到主脚本。
    • 您有两个单独的主脚本 - 一个用于设置服务器环境,另一个用于设置工具环境。
  3. 您应该将问题报告给IBM(Informix)技术支持。您可以概述解决问题所必须做的事情。你有一个解决方法的事实将降低紧迫性,但它仍然是一个理想情况下应该修复的问题。 (但这个世界并不理想,以防你没有注意到;修复可能需要一段时间才能完成。)