Может посмотреть в сторону блокировки журналов? Там ведь при разноске тоже блокировка устанавливается.
Подробностей сейчас не вспомню - давненько смотрел, но общая идея
1. Заблокировать лог (не галочкой, а идентификатором сессии запустившего).
2. Открыть транзакцию,
3. выполнить логику
4. закрыть транзакцию,
5. снять блокировку
А при проверке блокировки лога смотреть, а существует ли еще такая сессия. Если нет - блокировку считать недействительной. Тогда выключение электричества не помешает.
__________________
If it ain't broke, take it apart and find out why (с)
|