Форум: "Базы";
Текущий архив: 2004.09.12;
Скачать: [xml.tar.bz2];
ВнизУровень изоляции транзакций Найти похожие ветки
← →
3APA3A © (2004-08-12 00:13) [0]компоненте он выставляется (как называется это свойство)?
И еще вопрос
Уровень изоляции - DirtyRead
Клиент А вставляет данные в таблицу, но Commit пока не делает
1) Будет ли клиент Б видеть эти данные?
2) Что произойдет в этими данными, если клиент А "неожиданно" отрубится от сервера?
← →
jack128 © (2004-08-12 00:16) [1]
> Уровень изоляции - DirtyRead
>
ib не поддерживает этот уровень изоляции.
← →
3APA3A © (2004-08-12 00:23) [2]А какие поддерживает и как ими управлять?
← →
jack128 © (2004-08-12 01:14) [3]есть один сайтик..русскоязычный..полностью посвященный IB.. Я думаю ты сам дагадаешься какой..вот туда и иди..
← →
Digitman © (2004-08-12 08:24) [4]
> 3APA3A © (12.08.04 00:23) [2]
> какие поддерживает
ReadCommited
как ими управлять?
StartTransaction + Commit[Retaining]/Rollback[Retaining]
> 1) Будет ли клиент Б видеть эти данные?
не будет
> 2) Что произойдет в этими данными, если клиент А "неожиданно"
> отрубится от сервера?
должен произойти автооткат стартованной клиентом А транзакции
← →
3APA3A © (2004-08-12 22:54) [5]to Digitman
Хм, IB/FB поддерживают только один уровень изоляции - ReadCommited?
Мне вообще надо вот что реализовать
1) Клиент А записывает какие-то данные в таблицу
2) Клиент Б (В, Г, Д...) должен видеть эти данные
3) При "неожиданном" отключении клиента А сервер должен сделать откат этих данных (откат или удаление). При нормальном отключении я сам позабочусь об удалении/откате... Все упирается в disconnect...
← →
Iconka © (2004-08-13 10:44) [6]Помоему средствами сервера такое нельзя реализовать.
← →
}{ander © (2004-08-13 10:55) [7]
> Мне вообще надо вот что реализовать
Клиент А делает изменения в таблице, тут же делает каммит. Вызывается events, сообщающий остальным о том, что что-то произошло (инсерт, апдейт и т.д.). Они переоткрывают наборы данных и видят все изменения.
← →
Iconka © (2004-08-13 11:08) [8]
> [7] }{ander
Да, это стандартный алгоритм.
Но 3APA3A, помоему, хочет что бы клиент А еще не сделал commit, а другие уже видели эти данные. Или я не права?
← →
Digitman © (2004-08-13 11:14) [9]
> 3APA3A © (12.08.04 22:54) [5]
> 1) Клиент А записывает какие-то данные в таблицу
так. замечательно.
> 2) Клиент Б (В, Г, Д...) должен видеть эти данные
не увидят они эти изменения никак без рестарта своих читающих транзакций
> 3) При "неожиданном" отключении клиента А сервер должен
> сделать откат этих данных (откат или удаление)
он это и сделает, за автооткат не волнуйся ..
все изменения, сделанные в контексте модифицирующей транзакции, которую стартовал неожиданно "отвалившийся" клиент, будут автоматически аннулированы сервером
← →
}{ander © (2004-08-13 12:37) [10]2 Digitman
> не увидят они эти изменения никак без рестарта своих читающих
> транзакций
и без его каммита.
2 Iconka
> Но 3APA3A, помоему, хочет что бы клиент А еще не сделал
> commit, а другие уже видели эти данные. Или я не права?
такое, имхо, вообще не реализуемо, т.к. [1]
← →
HSolo © (2004-08-13 13:06) [11]>не увидят они эти изменения никак без рестарта своих читающих транзакций
Если уровень изоляции у них ReadCommited - увидят и без рестарта, достаточно переоткрыть наборы данных. Лишь бы писатель commit сделал
← →
3APA3A © (2004-08-13 23:06) [12]Да не зацикливайтесь на commit... Мне не важно - сделает клиент А commit или нет... Важно вот это
Каждый клиент добавляет в таблицу какие-то свои, уникальные записи. Все остальные клиенты должны их видеть. Как только клиент A "отвалился" - записи надо удалить иначе получится "нехорошо"... Хочется сделать это по возможности серверной логикой...
Возможно ли это?
← →
jack128 © (2004-08-14 14:14) [13]Итак, вывод: Без коммита другие клиенты не могут увидеть изменения, зделанные твоим клиентом.
Если ты все таки сделал коммит, тут все сложнее, зависит параметров транзакций остальных клиентов. Если READ COMMITTED - то в остальных клиентах нужно переоткрыть ЗАПРОС, если же SNAPSHOT - то нужно рестартовать транзакции..
Еще раз советую заглянуть на wwww.ibase.ru
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.09.12;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.03 c