Процесс продолжает создавать файлы дампа

У нас есть приложение 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

Файлы дампа не говорят нам много, и мы хотели бы получить предложение, где мы должны начать искать.

2 ответа

Решение

Проблема заключалась в компоненте, который мы использовали для связи с Oracle. Новая версия этого компонента решила проблему.

Похоже, произошел следующий сценарий:

  • Произошло исключение;
  • Компонент пытается выполнить действие с Oracle;
  • Оракул вызвал мини-дамп;
  • Компонент повторен.

ОБНОВИТЬ:

Очевидно, эта проблема вызвана неисправным клиентом Oracle. Обновление до последней версии клиента Oracle исправило эту проблему для нас.

Когда я получил эти файлы, это было необработанное действие в программе (попытка сделать что-то без проверки возврата или думать, что это не сработает). Таким образом, в приложении.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

Другие вопросы по тегам