Здравствуйте, joshua, Вы писали:
J>Приветствую. J>Ищу совета. Есть служба, которая периодически (раз в час), сливает данные в базу на удаленном SQL сервере. При остановке службы все несохраненные с прошлого часа данные также сохраняются. Проблема возникает при рестарте сервера. Я полагаю возможно из-за того, что все службы завершаются, в том числе те, которые нужны для установки удаленного соединения с базой. В общем при этом случается такая ошибка: [DBNETLIB][ConnectionOpen(SECCreateCredentials()).]SSL Security error. J>Сохранение делаю в обработчике SERVICE_CONTROL_SHUTDOWN. Используется ADO. Нашел в msdn, что служба может получать еще событие SERVICE_CONTROL_PRESHUTDOWN, в котором типа можно делать подобные операции, пока система еще не начала shutdown. Но оно появилось только в Windows 2008/Vista, а нужно чтобы работало и на Windows 2003. J>Конечно, можно сохранять куда-то локально, чтобы при следующем старте сохранить в базу, но это доп. работа, кот. хотелось бы пока избежать. Для 100% надежной системы это конечно было бы необходимо, но пока такой необходимости нет, хотелось бы, чтобы без лишних хлопот в большинстве случаев запись в базу проходила. J>Может кто-то сталкивался с подобной задачей?
Если вы считаете, что проблема возникает из-за того, что завершаются службы, необходимые для соединения с удаленной базой, то можно попробовать сделать вашу службу зависимой от этих служб, и она (ваша службы) по идее должна будет завершиться до завершения зависимых служб.
Сначала накидать в зависимые все службы, которые как вы считаете могут быть нужны, и если прокатит, потом постепенно методом исключения выявить службы, которые действительно необходимы.