Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.12;
Скачать: CL | DM;

Вниз

Уровень изоляции транзакций   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.025 c
14-1093101697
bender
2004-08-21 19:21
2004.09.12
Програмирование LPT порта


14-1093463375
lipskiy
2004-08-25 23:49
2004.09.12
UBPFD - единая база процедур и функций для Delphi


1-1093373344
Rlz
2004-08-24 22:49
2004.09.12
Вопрос по функциям


3-1092584846
tERRORist
2004-08-15 19:47
2004.09.12
ADODataSet Output parameters and Resync


14-1093502826
Holy
2004-08-26 10:47
2004.09.12
Страховая пенсия