4.8.1 = не работает

Обсуждение проблем в работе программного комплекса
Coldi
Сообщения: 3
Зарегистрирован:
13 мар 2013, 17:23

Coldi » 15 мар 2013, 00:28

Тоесть? Максим, у меня даже при перезагрузки ОПена слетают базы... Убийство как я понимаю не будут же корректно завершать процесс?!
Аватара пользователя
Максим
Сообщения: 5366
Зарегистрирован:
11 дек 2010, 20:29
Контактная информация:

Максим » 15 мар 2013, 10:55

Нет, при ручном выключении или рестарте базы будут выключаться нормально. Но вот при выключении компа процесс будет убиваться и базы не завершатся корректно, однако по идее при следующем вкбючении база будет сама себя восстанавливать. Сейчас слетают да, но это просто ошибка опенсервер.
Alain Delon
Сообщения: 44
Зарегистрирован:
11 мар 2013, 20:40

Alain Delon » 15 мар 2013, 19:05

Вижу выложена версия 4.8.2.
Максим писал(а):Я выложу файлы обновления и для 4.8.0 до версии 4.8.2
Файлы будут? :roll:
Аватара пользователя
Максим
Сообщения: 5366
Зарегистрирован:
11 дек 2010, 20:29
Контактная информация:

Максим » 15 мар 2013, 19:15

http://open-server.ru/fix/fix482.rar

Распакуйте в папку с Open Server. Фикс перепишет все ваши настройки, как модулей, так и дефолтного профиля. Все созданные профили, кроме дефолтного, надо удалить и создать заново если вы их использовали. Для 4.8.0 и 4.8.1 до 4.8.2.
Alain Delon
Сообщения: 44
Зарегистрирован:
11 мар 2013, 20:40

Alain Delon » 15 мар 2013, 19:16

Благодарю :)
Аватара пользователя
DelphinPRO
Сообщения: 800
Зарегистрирован:
01 фев 2012, 17:27
Откуда: Самара
Контактная информация:

DelphinPRO » 15 мар 2013, 19:50

Максим писал(а):Нет, при ручном выключении или рестарте базы будут выключаться нормально. Но вот при выключении компа процесс будет убиваться и базы не завершатся корректно,
а чем отличаются эти варианты?
Если вы можете нормально завершить работы БД при выключении серевера, то что мешает вам сделать тоже самое, перехватив системное сообщение WM_QUERYENDSESSION ?
Аватара пользователя
Максим
Сообщения: 5366
Зарегистрирован:
11 дек 2010, 20:29
Контактная информация:

Максим » 15 мар 2013, 20:06

:? WM_QUERYENDSESSION здесь никак не поможет. Это сообщение должны обрабатывать сами движки баз, а не Open Server. Если Open Server попытается выключить базы во время получения WM_QUERYENDSESSION, то будет уже нечего выключать, другие процессы к этому времени уже закроются, ведь процессы баз завершаются мгновенно. Почему? Базы не обрабатывают WM_QUERYENDSESSION и WM_ENDSESSION, что система воспринимает как готовность к выключению и моментом их убивает.

Разработчики движков баз данных сделали нормальную работу своих творений только в качестве сервисов под Windows, остальное не реализовано.

Я теперь даже в справке специально написал, что если вырубаете комп, то нужно выключать сервер вручную, потом уже компьютер. Иначе может быть порча баз.

Добавлено спустя 7 минут 7 секунд:
Есть два вида работы с модулями, как с сервисами или как с обычными процессами. Сервисы нормально останавливаются самой Windows при выключении, процессы запущенные вручную нет. Обычные процессы дают портативность без выключения, а сервисы дают нормальное выключение без портативности. Я думаю уж лучше будет портативность.

Еще я на днях посмотрю, может получится перевести все модули на сервисы, но сервисы будут автоматически инсталлироваться при включении и деинталлироваться при выключении. В качестве сервиса вышеописанным способом когда-то работал мемкеш, пока я не понял как его перевести на ручной запуск.
Аватара пользователя
DelphinPRO
Сообщения: 800
Зарегистрирован:
01 фев 2012, 17:27
Откуда: Самара
Контактная информация:

DelphinPRO » 15 мар 2013, 20:26

а, понял, к тому времени, как ты получишь WM_QUERYENDSESSION драйвер БД уже вырубится системой?
Аватара пользователя
Максим
Сообщения: 5366
Зарегистрирован:
11 дек 2010, 20:29
Контактная информация:

Максим » 15 мар 2013, 20:40

DelphinPRO писал(а):а, понял, к тому времени, как ты получишь WM_QUERYENDSESSION драйвер БД уже вырубится системой?
Ну практически так. WM_QUERYENDSESSION рассылается всем одновременно, если на него нет ответа то той программе сразу шлется WM_ENDSESSION, потому Windows убивает модули еще до того, как я чего-то захочу с ними сделать.
dimka666
Сообщения: 3
Зарегистрирован:
08 май 2011, 17:38

dimka666 » 16 мар 2013, 23:22

А если себя первым в очереди поставить через SetProcessShutdownParameters - тоже не работает ?
Закрыто