进程不断创建转储文件

进程不断创建转储文件

我们在终端服务器上运行了一个 Delphi 应用程序,该应用程序不断生成转储文件。对于相同的 PID,它会以大约 1 秒的间隔不断创建转储文件,直到手动终止该进程。另一个奇怪的事情是转储文件的名称:

±_minidump_default_pid_7916_tid_x6590_2012_6_18_13_48_40.dmp
÷_minidump_default_pid_7916_tid_x6590_2012_6_18_13_48_42.dmp
k_minidump_default_pid_7916_tid_x6590_2012_6_18_13_48_39.dmp
Ô_minidump_default_pid_7916_tid_x6590_2012_6_18_13_48_41.dmp
Ž_minidump_default_pid_7916_tid_x6590_2012_6_18_13_48_40.dmp

转储文件并没有告诉我们太多信息,我们希望得到一些建议,告诉我们应该从哪里开始查找。

答案1

问题似乎出在我们用于与 Oracle 通信的组件上。此组件的新版本解决了该问题。

看起来发生了以下情况:

  • 发生异常;
  • 该组件尝试与 Oracle 执行操作;
  • Oracle 触发了小型转储;
  • 组件已重试。

更新:

显然,此问题是由 Oracle 客户端故障引起的。更新到最新版本的 Oracle 客户端已修复此问题。

答案2

当我收到这些文件时,这是程序中未处理的操作(尝试执行某项操作,但未测试返回结果或认为它不会起作用)。因此,在我制作的 .Net 应用程序中,需要进行代码更正。

由于应用程序问题,这些文件是由 Oracle 组件创建的。

如果您只是想避免创建这些文件,只需使用这些新值修改您的 sqlnet.ora 文件:

DIAG_ADR_ENABLED=OFF
DIAG_SIGHANDLER_ENABLED=FALSE
DIAG_DDE_ENABLED=FALSE

使用这些新行,不再有转储文件,并且实际应用程序崩溃时会在事件查看器中显示详细信息。

我希望这会有所帮助,知道这并不总是来自 Oracle Part ;-)

提示在这里:https://stackoverflow.com/questions/28449276/what-is-the-reason-for-core-dump-stack-shows-from-oracle-lib

相关内容