Форум » [x]Harbour » Вылет из программы... » Ответить

Вылет из программы...

Andrey: Всем привет ! Возник вопрос давно, но всё руки не доходили... Использую хХарбор. Обработчик ошибок стандартный. Периодически на СЕРВЕРЕ (сейчас меньше из за смены на WinServer 2008) открытые базы остаются открытыми, хотя юзер завершил работу. Кто оставляет открытые дескрипторы на сервере не понятно. Толи сеть сбойнула, то ли прога по ошибке "упала". Т.е. базы остаются открытыми и программу нельзя обновить или сделать индексацию баз (для этого нужно базы открывать монопольно). Приходиться сервер перегружать или ручками через панель администратора закрывать открытые базы. Если программа аварийно завершилась, то открытые базы в программе должны автоматом закрываться или нет ? Как с этим бороться ?

Ответов - 12

SergKis: Andrey Ты уверен, что завершение аварийное ? Есть сообщение о снятии ? Может просто ткнули кнопку "Выкл." компа ? Errorsys.prg заканчивается QUIT-ом

PSP: Andrey пишет: Кто оставляет открытые дескрипторы на сервере не понятно Как это выглядит?

Andrey: SergKis пишет: Ты уверен, что завершение аварийное ? Есть сообщение о снятии ? Может просто ткнули кнопку "Выкл." компа ? Errorsys.prg заканчивается QUIT-ом Кто его знает... Но периодически так и происходит. Поймать за руку никого не могу. Но народ вроде дисциплинированный. Даже прога на Делфи использующая ADS Local тоже иногда оставляет открытым свои базы. Сам видел такое. Но на Дельфи свои базы, со мной не пересекаются.


Andrey: PSP пишет: Как это выглядит? Чуть позже покажу, сервак пока не доступен.

PSP: Вот что-то похожее: http://www.dslreports.com/forum/r28338456-Server-2008-Files-still-Open-After-user-closes-them

Andrey: Andrey пишет: Если программа аварийно завершилась, то открытые базы в программе должны автоматом закрываться или нет ? Так и не ответил на этот вопрос никто ! Нужно ли после появления окна с ошибкой делать DbCloseAll() // закрыть все базы ?

PSP: Andrey пишет: Так и не ответил на этот вопрос никто ! Нужно ли после появления окна с ошибкой делать DbCloseAll() // закрыть все базы ? Неправда, на вопрос ответ был: SergKis пишет: Andrey Ты уверен, что завершение аварийное ? Есть сообщение о снятии ? Может просто ткнули кнопку "Выкл." компа ? Errorsys.prg заканчивается QUIT-ом

Andrey: PSP пишет: Errorsys.prg заканчивается QUIT-ом Это я понял, что заканчивается QUIT. Тогда вопрос переиначу: А базы автоматом закрываются при QUIT ? Нужно ли перед QUIT ставить дополнительно (на всякий случай) DbCloseAll() ?

VitalClip: Как один из возможных вариантов: Если юзер через "Подключение к удаленному рабочему столу" заходит на сервер и запускает прогу, то после закрытия сессии без выхода из проги, - файлы остаются открытыми ! (Возможно поможет)

PSP: Andrey пишет: А базы автоматом закрываются при QUIT ? Да.

Andrey: VitalClip пишет: "Подключение к удаленному рабочему столу" У меня прога работает как обычная файл-серверная. Сервер терминалов не использую для этой проги. PSP пишет: Да. Спасибо !

Dima: Такая же фигня и у меня сегодня , подвис файл через Fopen (а юзер отвалился) , помог линк PSP



полная версия страницы