Страница 1 из 2
Обнаружить аварийное завершение работы Windows, SQL Server & Application для запуска валидации баз данных
Добавлено: 04 Апрель 2016, 1:25
Developer
Привет всем!
Необходимо обнаружить аварийное завершение работы Windows, SQL Server & Application для запуска валидации баз данных.
Каким образом это сделать используя код Clarion?
Обнаружить аварийное завершение работы Windows для запуска валидации баз данных
Добавлено: 04 Апрель 2016, 3:29
Admin
Ищем в гугле строку "How can I get the Windows last reboot reason"
Скорее всего придется копаться в логе.
После загрузки винда обычно пишет туда что предыдущее выключение было не запланировано и т.д.
Обнаружить аварийное завершение работы Windows для запуска валидации баз данных
Добавлено: 04 Апрель 2016, 8:25
gopstop2007
а не проще проверка при открытии программы как была закрыта программа?

Обнаружить аварийное завершение работы Windows для запуска валидации баз данных
Добавлено: 04 Апрель 2016, 9:34
Игорь Столяров
Developer писал(а): Необходимо обнаружить аварийное завершение работы Windows
Согласен с предыдущим замечанием.
Валидация данных может потребоваться и при аварийном завершении работы ПРИЛОЖЕНИЯ (при нормальной работе Windows).
Поэтому мне кажется, что более правильно отслеживать именно аварийное завершение работы ПРИЛОЖЕНИЯ.
Делается элементарно. При запуске программы заводим запись в лог-файл, при завершении-удаляем (+ дата / время / компьютер).
Есть записи - значит программа не завершила работу штатно и т.д.
А чем штатная система отката незавершенных транзакций COMMIT/ROLLBACK не устраивает ?
Обнаружить аварийное завершение работы Windows для запуска валидации баз данных
Добавлено: 04 Апрель 2016, 10:42
kreator
Игорь Столяров писал(а):А чем штатная система отката незавершенных транзакций COMMIT/ROLLBACK не устраивает ?
А SQL сервера сами всё делают. А если БД разрушена так что надо из архива её доставать? Автоматизировать процесс форс-мажора?
Обнаружить аварийное завершение работы Windows для запуска валидации баз данных
Добавлено: 04 Апрель 2016, 16:12
Developer
kreator писал(а): Автоматизировать процесс форс-мажора?
Вот точное определение задачи!
Игорь Столяров писал(а): Поэтому мне кажется, что более правильно отслеживать именно аварийное завершение работы ПРИЛОЖЕНИЯ.
Согласен, но не полностью: база на одном компьютере, приложение по сети на другом.
Приложение работает а сервер с базами аварийно завершил работу
Необходим алгоритм автоматической проверки аварийного завершения работы приложения, операционной системы и SQL сервера для оценки целостности баз данных в коде Clarion без участия пользователя - системного администратора нет по определению
Какие есть идеи и возможные решения?
Обнаружить аварийное завершение работы Windows для запуска валидации баз данных
Добавлено: 04 Апрель 2016, 16:17
Игорь Столяров
Developer писал(а): Какие есть идеи и возможные решения?
Чудес не бывает. Сложная информационная система и в штатном-то режиме работы требует сопровождения.
Чего уж говорить об аварии. Лучше все-таки проплатить ботана, который за всем этим будет следить ...

Обнаружить аварийное завершение работы Windows, SQL Server & Application для запуска валидации баз данных
Добавлено: 04 Апрель 2016, 16:28
Developer
Игорь Столяров писал(а): Чудес не бывает. Сложная информационная система и в штатном-то режиме работы требует сопровождения.
Чего уж говорить об аварии. Лучше все-таки проплатить ботана, который за всем этим будет следить ...

Игорь, согласен с тобой.
Но ситуация сейчас на рынке информационных технологий, особенно в мелком бизнесе, на спаде экономики такова, что платить заказчики программного обеспечения ещё кому-то не очень желают.
Вот отсюда и вытекают эти вопросы: давай заказчику полную автоматизацию форс-мажорных обстоятельств

Обнаружить аварийное завершение работы Windows, SQL Server & Application для запуска валидации баз данных
Добавлено: 04 Апрель 2016, 16:40
Игорь Столяров
Developer писал(а): давай заказчику полную автоматизацию форс-мажорных обстоятельств
Таблетки от всего не бывает. Наверно, можно выработать ряд сценариев (!) развития форс-мажора и реакции
системы на них. Есть какие-то показатели отказоустойчивости, например тех же БД. Обеспечение уровня
устойчивости с применением аппаратно-программных средств (RAID, теневые копии БД и т.д.).
Если говорить о программной реализации, то все равно должен быть четкий список: "что случилось" и "наши действия".
Надо начать с этого.
Ботан лучше. Ему можно звонить ночью и спрашивать почему сайт не работает ...

Обнаружить аварийное завершение работы Windows, SQL Server & Application для запуска валидации баз данных
Добавлено: 04 Апрель 2016, 16:46
Developer
Игорь Столяров писал(а): Если говорить о программной реализации, то все равно должен быть четкий список: "что случилось" и "наши действия".
Вот это по существу!
Пытаюсь для начала разработать алгоритм на указанные аварийные события и методы их реализации. Поэтому и прошу высказывать идеи.

Обнаружить аварийное завершение работы Windows, SQL Server & Application для запуска валидации баз данных
Добавлено: 04 Апрель 2016, 17:24
gopstop2007
уже неоднократно про это писалось, вот похожее решение от
Yufil http://forum.clarionlife.net/phpbb/view ... 338#p21178 
и что мешает на сервере создать таблицу с коннектами и при входе сервера их проверять на завершение-закрытие приложений клиентов?!
Обнаружить аварийное завершение работы Windows, SQL Server & Application для запуска валидации баз данных
Добавлено: 04 Апрель 2016, 17:48
Yufil
Делал в своё время программу, которая и в случае падения сервера пристойно себя вела.
Программа перехватывала сообщение от MS SQL и аккуратно завершалась (или рестартовала, если юзер хотел), если было совсем никак...
В противном случае Browse выдавала кучу непонятных сообщений, которые операторы транслировали админам...
А с коннектами на сервере голову сломал

Обнаружить аварийное завершение работы Windows, SQL Server & Application для запуска валидации баз данных
Добавлено: 04 Апрель 2016, 19:22
gopstop2007
Создать таблицу пользователей или № приложения клиента
№Киент, как кому удобно

Открыл приложение
№Киент записалась в таблицу 1, при выходе ставим 0.
Не вышли из приложения висит 1.
Завис сервер или перезагрузился, запрос(курсор) по (Пользователь или само приложение имеет №), если есть хоть одна единица то тогда нужное действие с БД... Как то так
Обнаружить аварийное завершение работы Windows, SQL Server & Application для запуска валидации баз данных
Добавлено: 04 Апрель 2016, 20:13
Yufil
Работаем, не вышли из приложения - висит 1
Пьём кофе, не вышли из приложения - висит 1
Ушли вечером, не вышли из приложения - висит ...
Выключили компьютер, не вышли из приложения - см.выше
Приложение грохнулось и ...
Если висит 1 - есть кто на сервере или как?
Приложение может время от времени "пинговать" сервер и напоминать о своём существовании, прописывая дату и время своей активности или как-то протоколировать действия оператора. Тогда - да, легко определить. А одного флажка, пожалуй что, и не хватит.
Обнаружить аварийное завершение работы Windows, SQL Server & Application для запуска валидации баз данных
Добавлено: 04 Апрель 2016, 20:28
Developer
Yufil писал(а): Делал в своё время программу, которая и в случае падения сервера пристойно себя вела.
Программа перехватывала сообщение от MS SQL и аккуратно завершалась (или рестартовала, если юзер хотел), если было совсем никак...
В противном случае Browse выдавала кучу непонятных сообщений, которые операторы транслировали админам...
А с коннектами на сервере голову сломал

Юрий, могут ли быть доступны исходники Clarion для нас по этой теме?