Вот какая ситуация:
БД - Oracle, интерфейс - на VB.NET
В ходе выполнения программы реализуется сложная транзакция, в которой происходит вставка или обновление нескольких таблиц. Необходимо организовать работу транзакции так, чтобы когда один пользователь выполняет действие по обновлению или вставке, то никакой другой пользователь не мог ни изменить данные в таблицах, ни вставить их туда, и в принципе даже прочитать "нескоммиченные" данные...
Использую транзакцию с параметром Serializable:
trnz = cnnOra.BeginTransaction(IsolationLevel.Serializable)
который не должен давать другому пользователю вставлять строки во время считывания их другим пользователем - но вставить строки можно...
Как реализовать такую транзакцию???
Скорее всего надо использовать блокировки... Но тогда надо их отслеживать при вылете из проги...
Причём таблицы могут обновлятся и из других приложений...