Процесс продолжает создавать файлы дампа
У нас есть приложение 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