Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.031 c
4-1090747632
race1
2004-07-25 13:27
2004.09.12
keys


9-1084692946
MsShtaer
2004-05-16 11:35
2004.09.12
Как использовать швейдера в Delphi


3-1092680411
Java73
2004-08-16 22:20
2004.09.12
Проблема с выводом данных


4-1091181117
Morphin
2004-07-30 13:51
2004.09.12
Ограничение размера стека потока


3-1092710358
SASH2
2004-08-17 06:39
2004.09.12
wwDBEdit?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский