Re: Немного флейма. Транзакции

2007-09-25 Пенетрантность Kovalenko Dmitry
 Большинство я так понял сидит в двух звеной архитектуре и самой точно
 характеристикой я выбрал бы У меня на каждой форме своя транзакция

У меня на формах вообще транзакций нет :)

 Тотже TClientDataSet тоже упоминался в этой ветке, а никто не думал
 зачем его борланд придумал?

Я например не знаю - накуя он его придумал. Догадываюсь, но точно не
знаю, потому что не юзал ниразу.

 А кроме 2-х звеных приложений есть другие архитектуры.
 Раскажите мне применение даной возможности в веб приложении?
 а в трехвеном приложении?

Я кроме лога и фонового опроса (вместо эвентов, к которым я охладел, а
второе дыхание чегото не приходит) придумать не могу.

 Попарившись с БДЕ мы на очень многое заложились.

Я BDE использовал только когда был совсем зеленный. В период
испуганного программирования.

Короче, Макс. Я убил вагон времени объясняя товарищами - сервер не
навязывает вообще ничего. Широкий простор компонент доступа на любой
вкус и цвет - тоже. Навязывают люди типа вот этих вот самих товарищей.
И объясняя, что не надо, бл#, отвечать за всех и обвинять всех тоже -
потому что это реально тупо. Но как об стену горох.

А, тут еще дебильные заявления - зачем что то делать когда есть
экспрессы. А когда они появились-то, эти экспрессы? А благодаря
чему они появились? А какие засады  у этих экспрессов? Это, бл#, типа
к разговору отношения не имеет. И так далее и тому подобное.

Коваленко Дмитрий.


Re: Немного флейма. Транзакции

2007-09-25 Пенетрантность Dmitri Kuzmenko


Hello, Max!

Max Rezanov wrote:


Большинство я так понял сидит в двух звеной архитектуре и самой точно
характеристикой я выбрал бы У меня на каждой форме своя транзакция
или у меня в программе 2 транзакции одна читающая на всю жизнь и
длиная, а одна(N) коротких пишущих. Вам дали такую возможность и вы ее
на всю используете и тоже не хотите видеть остального.
Тотже TClientDataSet тоже упоминался в этой ветке, а никто не думал
зачем его борланд придумал?


чтобы сделать briefcase-model, или stateless-обработку,
если угодно.


А кроме 2-х звеных приложений есть другие архитектуры.
Раскажите мне применение даной возможности в веб приложении?
а в трехвеном приложении?
Создать синглетон с подключением и забирать с него
транзакции? мне не кажеться это хорошей мыслью :(.


где-то в 1997-1998 году я писал свой пулер коннектов
на дельфях, для IB. В нем было:
1. использование отдельных коннектов для долгоиграющих запросов
2. использование одного коннекта для коротких запросов

в случае 2 как раз использовались одновременные транзакции,
с целью минимизировать рост количества необходимых соединений
при увеличении нагрузки. Реально на производительность
этот вариант не проверялся. Но архитектурно он был логически
здравым.


Да мы сечас сидим на C#, трех звеной архитектуре, ADO.NET и оракле.
Я не чуствую себя ущербныи из-за того что у меня одна транзакция на
соединение и пул подключений на сервере приложений. И кстати вопросы


так никто про ущербность не говорит. в Java вообще все иначе,
там, если не ошибаюсь, можно организовать пул транзакций :-)


Возможно к вам не приходят с предложениями А у MS откаты больше
сколько времени нада на то чтобы переписать это все на MS?.
Но от таких вопросов я, в принципе, уже не думаю о самоубийстве :))).


не знаю, какие там на MS откаты, если у MS розничных цен как таковых
нет. Есть только оптовые. Соответственно, на рынке к этим ценам
прибавляют 3-5%, и получается розничная цена.
Конечно можно устроить цену в 2-3 раза больше рыночной с целью
отката, но если это не коммерческая контора и если директор
сам ничего с отката не получил, то цены ведь известны, их
в инете навалом. и любая проверка (не милицейская) типа
а почему вы купили софт именно у этой фирмы этот откат обнаружит.

--
Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34




Re: Немного флейма. Транзакции

2007-09-24 Пенетрантность Vladimir A.Bakhvaloff
Hello, Alexander!
You wrote to Ded on Mon, 24 Sep 2007 11:39:47 +0600:


 D Ля, и когда вы всё успеваете, да ещё и работать...
 AAV Если пьянка мешает работе - ну её на куй, такую работу!.

...если работа мешает пить... /Далее по тексту/... ;)

With best regards, Vladimir A.Bakhvaloff.  E-mail: [EMAIL PROTECTED]

Re: Немного флейма. Транзакции

2007-09-24 Пенетрантность Dmitri Kuzmenko


Hello, Dmitry!

Kovalenko Dmitry wrote:


Дима Кузьменко - ну как оно, как горох об стену?


Да как обычно. вместо ответа на вопрос начинают
какую-то херь про мы же можем исказить ACID
если будем перебрасывать данные между этими
транзакциями в приложении! и прочую муйню.

т.е. тут же начинают выдумывать какие-то несусветные
ситуации, и стонать о том как это плохо.

Это в лучшем случае. В худшем случае все
свелось к тупые ФБ-шники, это плохо,
это неправильно и т.д.

причем, одни ортодоксы. хоть бы одна падла заявила -
ух ты, мне же лишнее соединение не придется открывать!
Тут же начинается про пул соединений толковище.
при чем тут вообще пул, непонятно.

Ну а про вопросы БД не относятся к UI - я вообще молчу.

--
Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34




Re: Немного флейма. Транзакции

2007-09-24 Пенетрантность Dmitri Kuzmenko


Hello, Alex!

Alex Cherednichenko wrote:


 KD Да ему просто нечем понимать. Я же говорю мышление настолько плоское,
 KD что пытаться ему что-то объяснить - это все равно что разговарить с
 KD камнями Тамерлана.

Моё opinion: да ну его в Ж !
(в хорошем смысле)


да, даже позлобствовать от души не получается. все серое и унылое.

--
Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34




Re: Немного флейма. Транзакции

2007-09-24 Пенетрантность Kovalenko Dmitry
 Kovalenko Dmitry wrote:
  Дима Кузьменко - ну как оно, как горох об стену?

 Да как обычно. вместо ответа на вопрос начинают
 какую-то херь про мы же можем исказить ACID
 если будем перебрасывать данные между этими
 транзакциями в приложении! и прочую муйню.

Я знаю Java, UNIX, Oracle и много других умных слов ! :super:

Думаешь так оно и есть?

Коваленко Дмитрий.


Re: Немного флейма. Транзакции

2007-09-23 Пенетрантность Alexander A. Venikov


Hello, Ded!
You wrote  on Thu, 20 Sep 2007 18:06:35 +0400:

 RSDN
D Ля, и когда вы всё успеваете, да ещё и работать...
Если пьянка мешает работе - ну её на куй, такую работу!.
--
Удач
Alexander A. Venikov, Tobolsk, Russia 





Re: Немного флейма. Транзакции

2007-09-21 Пенетрантность Kovalenko Dmitry
  Форум по плюсам, там - я вздрагиваю. В базах данных тоже думал что
  вроде ничего. Но за последние два дня - ниже плинтуса.

  Я вот смотрю на ответы Ивана. Там в каждом сообщении слова -
  напрягаться, сложно, устал, тупо ...

 Он не понимает, что

Да ему просто нечем понимать. Я же говорю мышление настолько плоское,
что пытаться ему что-то объяснить - это все равно что разговарить с
камнями Тамерлана.

Барану объясняют - те на кого он там молится давным давно сформировали
спецификацию в которой были недвусмысленно прописаны понятия
версионности и нескольких активных множеств. ЗА ДОЛГО ДО ПОЯВЛЕНИЯ
MSSQL2005, в котором все это наконец появилось. А до тех пор пока она
не появилась - это уже исторические факты - бараны не то что бы не
знали про такие вещи, но и говорили - накуй нужно. Однако MS, как
только вплотную занялась инструментами для разработчиков, вдруг
неожидано решила наоборот.

И там же недвусмысленно прописана поддержка нескольких паралелльных
активных транзакций. И есть ключик который определяет как будем эти
транзакции упаковывать - в одно или разные подключения. Но бл#, этот
товарищь уже не в состоянии сделать соответствующие выводы. Он будет
тупо смотреть на деревья, не осознавая что стоит перед лесом.

Ой, ADO.NET не позволяет сделать несколько независимых транзакций в
одном подключений - какой кАшмар! Это ведь не спроста, это же, бл#,
самый правильный подход! А если у этих мудил поинтересовать
техническими аспектами (типа реализации микрософтовский пула
подключений или координатора распределенных транзакций) - кроме
мычания и читайте MSDN не услышишь. Уверен на все 200% - проверено в
попытках узнать а что же именно делается в момент старта второй
отдельной транзакции при незавершенной первой. Кроме бе и ме ничего
не добился.

Дима Кузьменко - ну как оно, как горох об стену?

Коваленко Дмитрий.


Re: Немного флейма. Транзакции

2007-09-21 Пенетрантность Kovalenko Dmitry
 я может глючу, но мне кажется что ODBC иногда
 сам пуляет на сервер запросы. И это не запросы
 к метаданным. Т.е. якобы клиентский SQL
 каким-то образом модифицируется. Это так и есть, или мне
 почудилось?

Дим, данунах. Драйверы могут преобразовывать SQL к родному синтаксису.

Но сами, от балды, запросы на модификацию данных не генерируют. Ну
разве что в редакции Crazy Edition.

В ODBC есть такая вещь как ODBC-sequences. Это когда в текст SQL-
запроса вставляют вещи вида {ts '2007-10-21 11:24:34.001'} - драйвер
это дело находит и заменяет на родную конструкцию для сервера. Эти
же ODBC-sequences неявно перекочевали в OLEDB.

Кроме дат, также могут оформляться и вызовы хранимых процедур
{call ...} и вызовы встроенных функций {fn ...}.

Посмотри последние новости провайдера. Мы во вторую версию добавили
конверторы для новых функций FB2.

Помимо {...}, есть еще такая дебильная вещь как ... я их называю
квотированные имена объектов БД. MS, в своих движках второго уровня,
вместо того чтобы спросить чем будем квотировать, тупо юзает
квадратные скобки. Последние версии провайдера, преобразуют и это
тоже.

Коваленко Дмитрий.


Re: Немного флейма. Транзакции

2007-09-21 Пенетрантность Alex Cherednichenko

Привет, Kovalenko!
Вы пишешь  21 сентября 2007:

  Он не понимает, что

 KD Да ему просто нечем понимать. Я же говорю мышление настолько плоское,
 KD что пытаться ему что-то объяснить - это все равно что разговарить с
 KD камнями Тамерлана.

Моё opinion: да ну его в Ж !
(в хорошем смысле)

-- 
With best regards, Alex Cherednichenko.




Re: Немного флейма. Транзакции

2007-09-20 Пенетрантность Alexey Popov



Serge Buzadzhy wrote:

транзакции? Дофетчивать втихаря перед закрытием? Нехорошо. Оставлять 
недофетченным тоже плохо. Оба варианта плохи еще тем что девелопер 
вообще может не заметить, что что-то делается без его ведома. Проблема 
вообще может всплыть, когда девелопер прогу юзеру отдал.  Посему датасет 
 и закрываем, уж этого-то не заметить нельзя, так что девелопер вынужден 
решать сию проблему вовремя... а не тогда когда она вдруг всплывет.


Надо просто бросать исключение при попытке последующего фетча закрытого 
датасета.



--
--- Home Page http://ok.novgorod.net/ap ---




Re: Немного флейма. Транзакции

2007-09-20 Пенетрантность Serge Buzadzhy


Alexey Popov пишет:



Serge Buzadzhy wrote:

транзакции? Дофетчивать втихаря перед закрытием? Нехорошо. Оставлять 
недофетченным тоже плохо. Оба варианта плохи еще тем что девелопер 
вообще может не заметить, что что-то делается без его ведома. Проблема 
вообще может всплыть, когда девелопер прогу юзеру отдал.  Посему 
датасет  и закрываем, уж этого-то не заметить нельзя, так что 
девелопер вынужден решать сию проблему вовремя... а не тогда когда она 
вдруг всплывет.


Надо просто бросать исключение при попытке последующего фетча закрытого 
датасета.


И что это дает? На этапе разработки ты на это исключение можешь и не 
нарваться.




Re: Немного флейма. Транзакции

2007-09-20 Пенетрантность Dmitri Kuzmenko


Hello, Serge!

Serge Buzadzhy wrote:


БДЕ по моему дофетчивало втихую.


когда как.
www.ibase.ru/devinfo/bde.htm

Наша песня хороша - начинай сначала :) Обсуждали ужо. Хочешь - обсудм 
еще раз. Недофетченный запрос, чего с ним делать при закрытии 
транзакции? Дофетчивать втихаря перед закрытием? Нехорошо. Оставлять 
недофетченным тоже плохо. Оба варианта плохи еще тем что девелопер 
вообще может не заметить, что что-то делается без его ведома. Проблема 
вообще может всплыть, когда девелопер прогу юзеру отдал.  Посему датасет 
 и закрываем, уж этого-то не заметить нельзя, так что девелопер вынужден 
решать сию проблему вовремя... а не тогда когда она вдруг всплывет.


спасибо, это я тоже помню, но из первых рук получилось максимально полно.

--
Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34




Re: Немного флейма. Транзакции

2007-09-20 Пенетрантность Serge Buzadzhy


Alexey Popov пишет:



Serge Buzadzhy wrote:

транзакции? Дофетчивать втихаря перед закрытием? Нехорошо. Оставлять 
недофетченным тоже плохо. Оба варианта плохи еще тем что девелопер 
вообще может не заметить, что что-то делается без его ведома. Проблема 
вообще может всплыть, когда девелопер прогу юзеру отдал.  Посему 
датасет  и закрываем, уж этого-то не заметить нельзя, так что 
девелопер вынужден решать сию проблему вовремя... а не тогда когда она 
вдруг всплывет.


Надо просто бросать исключение при попытке последующего фетча закрытого 
датасета.




И вообще я не понимаю чем исключение, которое будет появляться 
достаточно случайным образом
лучше чем стабильная реакция. Стабильную реакцию можно учесть и обойти, 
тем более что стандартные пути обхода

предлагаются.



Re: Немного флейма. Транзакции

2007-09-20 Пенетрантность Vlad Khorsun


Serge Buzadzhy ...


Vlad Khorsun пишет:


Dmitri Kuzmenko ...


тут ведь еще есть вот какой момент. Любовь к параллельным транзакциям
пошла из-за того, что BDE


БДЕ по моему дофетчивало втихую.


   Угу. Но БДЕ писалось во времена, когда клиент-сервер только начинал входить
в массы и толком было не понятно как с ним работать. Т.е. теоритически все всё 
знали
и понимали, а вот практических навыков (по крайней мере в Б) не было.


а потом и FreeIBComponents, и IBX/FIBPlus

убивают кэш в датасетах,


т.е. закрывают запросы.
Ну... запрос закрыть это один вопрос. Второй вопрос это кэш в датасетах. Запрос закрыть необходимо. Он просто перестает быть 
валидным при закрытии транзакции в рамках которой был открыт. Что собственно и понятно.


   А при чём тут мои локальные, с таким трудом отфетченные, данные ?


   Знать бы ещё - нафига они это делают...


Наша песня хороша - начинай сначала :) Обсуждали ужо.


   Значит я пропустил тот раз ;)


Хочешь - обсудм еще раз.


   Как скажешь ;) Скажу сразу - это камень не в твой огород, а скорее в огород
Грегори


Недофетченный запрос, чего с ним делать при закрытии транзакции?


   А что - надо что-то делать ?


Дофетчивать втихаря перед закрытием? Нехорошо. Оставлять недофетченным тоже 
плохо.


   Чем ? Тем что бедненький кодер испугается ошибки, которую выдаст
злобный сервер при попытке фетча из закрытого курсора ? Ай, как его жалко


Оба варианта плохи еще тем что девелопер вообще может не заметить, что что-то 
делается без его ведома.


   А вот не надо ничего делать без его ведома. Не надо. Это так просто :)

Проблема вообще может всплыть, когда девелопер прогу юзеру отдал.  Посему датасет и закрываем, уж этого-то не заметить нельзя, так 
что девелопер вынужден решать сию проблему вовремя... а не тогда когда она вдруг всплывет.


   Конечно - мы же лучше знаем, что девелоперу нужно на самом деле...

   Конкретно эту проблему считаю высосанной их пальца и навязанной множеству
кодеров, которые просто слепо верят в инструмент и не задумываются причинах.

ЗЫ. Кстати в FIBPlus ( а может и в ИБХ) если датасет в режиме CachedUpdates  то при закрытии транзакции, датасет все-таки не 
закрывается, а дофетчивается.


   Меня это всё не волнует лет этак 8-9 - с тех пор как я пользую CDS и не имею
проблем с нижележащими уровнями вообще :)

--
Хорсун Влад 





Re: Немного флейма. Транзакции

2007-09-20 Пенетрантность Alexander A. Venikov


Hello, Alexey!
You wrote  on Wed, 19 Sep 2007 12:40:13 +0400:

 1. В чем именно удобство стартовать много транзакций в одном соединении?
AP Удобно при работе с многими формами. В каждой форме своя
AP транзакция и они совершенно изолированы друг от друга.
AP В противном случае надо как то извращаться что бы работа
AP в разных формах/модулях не противоречила друг другу.
Ты немного не понял. С этой точки зрения ничто не мешает использовать в каждой 
форме отдельное подключение. Почему это плохо - уже ответили.

--
Удач
Alexander A. Venikov, Tobolsk, Russia 





Re: Немного флейма. Транзакции

2007-09-20 Пенетрантность Alexey Popov


Serge Buzadzhy wrote:

И вообще я не понимаю чем исключение, которое будет появляться 
достаточно случайным образом
лучше чем стабильная реакция. Стабильную реакцию можно учесть и обойти, 
тем более что стандартные пути обхода

предлагаются.


Почему случайным? Где стабильная реакция? Сейчас запрос просто закрывается,
что само по себе тихо, незаметно и может привести с странным глюкам.
При выбросе исключения автоматически выскочит мессадж бокс с точной 
причиной. Юзер сразу отпинает девелопера без всяких стуков в подвале.




--
--- Home Page http://ok.novgorod.net/ap ---




Re: Немного флейма. Транзакции

2007-09-20 Пенетрантность Alex Cherednichenko

Привет, Vlad!
Вы пишешь  20 сентября 2007:

[Sorry, skipped] 
 VK А вот не надо ничего делать без его ведома. Не надо. Это так просто :)

Аааа!!
Ты знал!!!
Ты знал :)))

-- 
With best regards, Alex Cherednichenko.




Re: Немного флейма. Транзакции

2007-09-20 Пенетрантность Ded


Vlad Khorsun wrote:


   Меня это всё не волнует лет этак 8-9 - с тех пор как я пользую CDS и 
не имею

проблем с нижележащими уровнями вообще :)


   CDS я тоже лублу, вот только оно хорошо когда примерно знаешь 
сколько ему там фетчить. А то ведь может и не войти в крынку-то. А 
парцайками тягать муторно. Правда меня это тоже отродясь не волновало, 
ибо с малолетства разделял пишущие и читающие транзакции. Лично мне 
текущее поведение внучков Грегори представляется более логичным и 
простым в использовании чорным ящиком, нежели борьба с недофетченными 
курсорами, невалидными дбкеями и, пожалуй, для человека неискушённого, 
отсутствием конфликтов модификации там, где они должны быть. Может, 
конечно, дело привычки...


--
Regards. Ded.



Re: Немного флейма. Транзакции

2007-09-20 Пенетрантность Serge Buzadzhy


Alexey Popov пишет:


Serge Buzadzhy wrote:

И вообще я не понимаю чем исключение, которое будет появляться 
достаточно случайным образом
лучше чем стабильная реакция. Стабильную реакцию можно учесть и 
обойти, тем более что стандартные пути обхода

предлагаются.


Почему случайным? 
Потому что возникновение предполагаемого эксепшна зависит от случайных 
факторов.


1. Много или мало записей в запросе (это для одного и того же запроса 
меняется во времени)

2. Успел юзер отфетчить  записи или нет до того как кто-то вызвал коммит.

Т.е.  тестируя одну и ту же форму в чуть-чуть разных условиях ты будешь 
или получать или не получать этот эксепшн.



Где стабильная реакция? Сейчас запрос просто закрывается,

Стабильно закрывается.

что само по себе тихо, незаметно и может привести с странным глюкам.

Тихо? То-то  это обнаруживается сразу же всеми кто первый раз пробует.
насчет незаметно ... очень трудно не заметить что грид перестал 
показывать данные сразу же после коммита.  Причем стабильно - есть 
коммит - данные исчезли.




Re: Немного флейма. Транзакции

2007-09-20 Пенетрантность Vlad Khorsun


Ded ...


Vlad Khorsun wrote:


   Меня это всё не волнует лет этак 8-9 - с тех пор как я пользую CDS и не имею
проблем с нижележащими уровнями вообще :)


   CDS я тоже лублу, вот только оно хорошо когда примерно знаешь сколько ему там фетчить. А то ведь может и не войти в крынку-то. 
А


   Может у мну (с) крынка резиновая, но никогда на это не напарывался.
Может я не тяну сотни тысяч на клиента (отчёты делаются другими ср-вами) ?
Единицы и, возможно, десятки тысяч пролетают без заметных проблем (редко,
но иногда бывает и такое). Это при том, что есть и более быстрые in-memory
таблицы, чем CDS. Да и менее глючные тоже, надеюсь, есть :)

парцайками тягать муторно. Правда меня это тоже отродясь не волновало, ибо с малолетства разделял пишущие и читающие транзакции. 
Лично мне


   У меня это тоже две разные тр-ции. Но только для того, чтобы дать им 
(возможно)
разный набор параметров, а не для обхода проблемы закрытия датасетов.

текущее поведение внучков Грегори представляется более логичным и простым в использовании чорным ящиком, нежели борьба с 
недофетченными курсорами, невалидными дбкеями и, пожалуй, для человека неискушённого, отсутствием конфликтов модификации там, где 
они должны быть. Может, конечно, дело привычки...


   Поведение _может_ быть настраиваемым, но не _должно_ быть железобетонно-
непробиваемым в стиле : ты туда не ходи, ты сюда ходи... и только сюда

   Я, с точки зрения пользователя компонент, не вижу ничего логичного и 
простого в
закрытии всех датасетов по окончании тр-ции. Наооброт - это приводит в 
недоумение
и заставляет _бороться_ с компонентами\сервером вместо решения моих собственных
прикладных задач.

--
Хорсун Влад 





Re: Немного флейма. Транзакции

2007-09-20 Пенетрантность Serge Buzadzhy


Vlad Khorsun пишет:




а потом и FreeIBComponents, и IBX/FIBPlus

убивают кэш в датасетах,


т.е. закрывают запросы.
Ну... запрос закрыть это один вопрос. Второй вопрос это кэш в 
датасетах. Запрос закрыть необходимо. Он просто перестает быть 
валидным при закрытии транзакции в рамках которой был открыт. Что 
собственно и понятно.


   А при чём тут мои локальные, с таким трудом отфетченные, данные ?


Дык включаем CachedUpdates  и можем вообще коннект обрубить не то что 
транзакцию закрыть. :) С трудом отфетченные данные остаются на месте.

Хочешь - обсудм еще раз.


   Как скажешь ;) Скажу сразу - это камень не в твой огород, а скорее в 
огород

Грегори


Мой огород давно не боится камней. :)



Недофетченный запрос, чего с ним делать при закрытии транзакции?


   А что - надо что-то делать ?

Дофетчивать втихаря перед закрытием? Нехорошо. Оставлять недофетченным 
тоже плохо.


   Чем ? Тем что бедненький кодер испугается ошибки, которую выдаст
злобный сервер при попытке фетча из закрытого курсора ? Ай, как его 
жалко

Мне больше жалко не его, а себя обычно. :)



Оба варианта плохи еще тем что девелопер вообще может не заметить, что 
что-то делается без его ведома.


   А вот не надо ничего делать без его ведома. Не надо. Это так просто :)
Это идеал. Недостижимый. Но по крайней мере если что-то делаешь без его 
ведома, нужно чтоб он сразу же видел что произошло и собственно понял 
причину по которой это произошло. Закрыть кэш - это как раз из этой 
серии. Сразу же и всегда видно, причина выясняется немедленно.




Проблема вообще может всплыть, когда девелопер прогу юзеру отдал.  
Посему датасет и закрываем, уж этого-то не заметить нельзя, так что 
девелопер вынужден решать сию проблему вовремя... а не тогда когда она 
вдруг всплывет.


   Конечно - мы же лучше знаем, что девелоперу нужно на самом деле...


Девелоперу нужно чтоб он мог реализовать свои собственные извращения и 
ему хватало для этого средств.




   Конкретно эту проблему считаю высосанной их пальца 
Я тоже. По причине того что проблема сразу видна и легко решается одним 
из трех способов.



и навязанной  множеству
кодеров, которые просто слепо верят в инструмент и не задумываются 
причинах.


ЗЫ. Кстати в FIBPlus ( а может и в ИБХ) если датасет в режиме 
CachedUpdates  то при закрытии транзакции, датасет все-таки не 
закрывается, а дофетчивается.


   Меня это всё не волнует лет этак 8-9 - с тех пор как я пользую CDS и 
не имею

проблем с нижележащими уровнями вообще :)


Я про себя скажу просто. Что бы я не делал в этой ситуации - меня все 
равно будут бить.  :) Или за то что закрываю кэш, или за то что вдруг 
эксепшны выскакивают, или что дофетчиваю или что не дофетчиваю. 
Собственно разницы никакой, бить все равно будут, не одни так другие. :)
Поэтому все остается как есть. По крайней мере выходы из ситуации 
отработаны и как отгавкиваться я тоже знаю, да и проблема давно уже 
никому не мешает. :)



Удачи



Re: Немного флейма. Транзакции

2007-09-20 Пенетрантность Vlad Khorsun



Я про себя скажу просто. Что бы я не делал в этой ситуации - меня все равно 
будут бить.  :)


   Я знал, что ты знал :)

Или за то что закрываю кэш, или за то что вдруг эксепшны выскакивают, или что дофетчиваю или что не дофетчиваю. Собственно разницы 
никакой, бить все равно будут, не одни так другие. :)


   Согласен...

Поэтому все остается как есть. По крайней мере выходы из ситуации отработаны и как отгавкиваться я тоже знаю, да и проблема 
давно уже никому не мешает. :)


   ...потому и не предлагаю ничего менять или устраивать революции :)
Просто тема навеяла :)

   И я так и не узнал - нафига Грег сбрил, тьфу, закрыл датасеты ;)

--
Хорсун Влад 





Re: Немного флейма. Транзакции

2007-09-20 Пенетрантность Ded


Vlad Khorsun wrote:


   Может у мну (с) крынка резиновая, но никогда на это не напарывался.
Может я не тяну сотни тысяч на клиента (отчёты делаются другими ср-вами) ?
Единицы и, возможно, десятки тысяч пролетают без заметных проблем (редко,
но иногда бывает и такое).


   Десятки тысяч не проблема. У меня в филиальской briefcase справочной 
подсистеме десятками и тягается. С тех пор, как наладил репликацию 
изменией в базовых справочниках и сборку визуализации на месте из 
засасываемых оперативных числовых данных и названий в локальной базе, 
вполне шустренько так летает. А вот спервоначалу, когда отправлял туда 
резалтсет джойна из центра, в какой-нить Тюмени на модеме минут 40 могло 
грузиться. То есть, к работе с кеширующими фулл фетч датасетами в общем 
случае надо технологически подходить не как к клиент-серверу. А это не 
всегда хорошо. Про работу с миллионными архивами, которые в 
клиент-сервере до конца вообще практически никогда не дофетчиваются, я 
уж молчу. И никаких специальных приседаний с IBX/FIBPlus для этого не 
надо, технология на это и заточена. Наоборот, надо приседать, когда 
нужны отступления от этой технологии. Мы с тобой приседаем при помощи 
CDS, а Серж строит настраиваемые гибриды с локальными 
сортировками-фильтрациями. Мне кажется, что правильней иметь и молоток и 
гвоздодёр отдельно и хвататься за то, что нужно в конкретный момент.



парцайками тягать муторно. Правда меня это тоже отродясь не волновало, 
ибо с малолетства разделял пишущие и читающие транзакции. Лично мне



   У меня это тоже две разные тр-ции. Но только для того, чтобы дать им 
(возможно)

разный набор параметров, а не для обхода проблемы закрытия датасетов.


   У меня этой проблемы вообще никогда не было. Основное чтение в 
единой транзакции по умолчанию r_c read, открывающейся на запуске 
приложения и закрывающейся на выгрузке, запись в коротких по месту 
снапшотах, с прдварительным рефрешем в них именно модифицируемых данных, 
если нужно. И фсё.


текущее поведение внучков Грегори представляется более логичным и 
простым в использовании чорным ящиком, нежели борьба с недофетченными 
курсорами, невалидными дбкеями и, пожалуй, для человека неискушённого, 
отсутствием конфликтов модификации там, где они должны быть. Может, 
конечно, дело привычки...



   Поведение _может_ быть настраиваемым, но не _должно_ быть железобетонно-
непробиваемым в стиле : ты туда не ходи, ты сюда ходи... и только сюда


   См. выше про молоток и гвоздодёр :)

   Я, с точки зрения пользователя компонент, не вижу ничего логичного и 
простого в
закрытии всех датасетов по окончании тр-ции. Наооброт - это приводит в 
недоумение
и заставляет _бороться_ с компонентами\сервером вместо решения моих 
собственных

прикладных задач.


  Не вижу в упор борьбы, если разделять транзакции. И Серж в плюсах это 
сделал, и Алекс для нас в IBX, причём ещё более радикально, можем на 
каждый ...SQL отдельную закатать. А раньше мы просто не пользовались 
технологией Edit-Post, а выполняли модификации автономными запросами. Да 
и сейчас преимущественно так.


--
Regards. Ded.



Re: Немного флейма. Транзакции

2007-09-20 Пенетрантность Vlad Khorsun


Ded ...


Vlad Khorsun wrote:


   Может у мну (с) крынка резиновая, но никогда на это не напарывался.
Может я не тяну сотни тысяч на клиента (отчёты делаются другими ср-вами) ?
Единицы и, возможно, десятки тысяч пролетают без заметных проблем (редко,
но иногда бывает и такое).


   Десятки тысяч не проблема. У меня в филиальской briefcase справочной подсистеме десятками и тягается. С тех пор, как наладил 
репликацию изменией в базовых справочниках и сборку визуализации на месте из засасываемых оперативных числовых данных и названий в 
локальной базе, вполне шустренько так летает. А вот спервоначалу, когда отправлял туда резалтсет джойна из центра, в какой-нить 
Тюмени на модеме минут 40 могло грузиться. То есть, к работе с кеширующими фулл фетч датасетами в общем случае надо технологически 
подходить не как к клиент-серверу. А это не всегда хорошо. Про работу с миллионными архивами, которые в клиент-сервере до конца 
вообще практически никогда не дофетчиваются, я уж молчу.


   Я всегда работаю только через процедуры и всегда только с отфетченным
набором данных. Никогда не было необходимости работать с недофетченными
данными. Да, забыл упомянуть, - это всё двузвёнка, т.е. никаких брифкейсов\
промкжуточных уровней у меня нет. Так штааа - смотрю на всё со своей колокольни
(как, впрочем, и все остальные :)

И никаких специальных приседаний с IBX/FIBPlus для этого не надо, технология на это и заточена. Наоборот, надо приседать, когда 
нужны отступления от этой технологии. Мы с тобой приседаем при помощи CDS, а Серж строит настраиваемые гибриды с локальными 
сортировками-фильтрациями. Мне кажется, что правильней иметь и молоток и гвоздодёр отдельно и хвататься за то, что нужно в 
конкретный момент.


   Конечно. Но, согласись, я _сам_ должен выбирать чем гвозди заколачивать,
а чем - выдирать.


   У меня это тоже две разные тр-ции. Но только для того, чтобы дать им 
(возможно)
разный набор параметров, а не для обхода проблемы закрытия датасетов.


   У меня этой проблемы вообще никогда не было.


   А я не про тебя это написал :)

   В обчем - все позиции всех всем давно известны, копья давно сломаны,
говорить тут не о чем :)

--
Хорсун Влад 





Re: Немного флейма. Транзакции

2007-09-20 Пенетрантность Ded


Vlad Khorsun wrote:


   В обчем - все позиции всех всем давно известны, копья давно сломаны,
говорить тут не о чем :)


   Ну воооттт... А по314деть? :-(

--
Regards. Ded/



Re: Немного флейма. Транзакции

2007-09-20 Пенетрантность Kovalenko Dmitry
 В обчем - все позиции всех всем давно известны, копья давно сломаны,
  говорить тут не о чем :)

 Ну воооттт... А по314деть? :-(

по314деть?

Бл#, я не понимаю, как можно быть модератором такого авторитетного
ресурса как RSDN и так тупить!!!

Сказать что я расстроен, это бл# вообще ничего не сказать.

Коваленко Дмитрий.


Re: Немного флейма. Транзакции

2007-09-20 Пенетрантность Kovalenko Dmitry
 Бл#, я не понимаю, как можно быть модератором такого авторитетного
 ресурса как RSDN и так тупить!!!

Бл#. Уверен, он делает класс ради одного объекта с одним методом с
единственным return-ом. Потому что процедурное программирование уже не
модно, а объектное - не асилил. И обращается к нему через глобальный
указатель.

А когда MS разродится вещами о которых ему там целых два дня
вталкивали, не сумеет увязать вчера и сегодня. Про завтра, я
вообще молчу.

Коваленко Дмитрий.


Re: Немного флейма. Транзакции

2007-09-20 Пенетрантность Vlad Khorsun


Kovalenko Dmitry ...

В обчем - все позиции всех всем давно известны, копья давно сломаны,
 говорить тут не о чем :)

Ну воооттт... А по314деть? :-(


по314деть?

Бл#, я не понимаю, как можно быть модератором такого авторитетного
ресурса как RSDN и так тупить!!!


   В каком месте оно авторитетное ? Уж не в СУБД точно :)))

--
Хорсун Влад 





Re: Немного флейма. Транзакции

2007-09-20 Пенетрантность Dmitri Kuzmenko


Hello, Vlad!

Vlad Khorsun wrote:

   Угу. Но БДЕ писалось во времена, когда клиент-сервер только начинал 
входить
в массы и толком было не понятно как с ним работать. Т.е. теоритически 
все всё знали

и понимали, а вот практических навыков (по крайней мере в Б) не было.


я позволю себе восстановить историческую справедливость.
В те давние времена Б, Н и еще кто-то создали архитектуру
IDAPI. М для себя сделал ODBC. IDAPI был лучше, но закрыт.
А ODBC был глюкавый, но простой и открыт.
Так ODBC победил IDAPI.

А чего было наверчено в BDE, было более-менее оптимально
по тем временам именно как универсальное решение.

--
Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34




Re: Немного флейма. Транзакции

2007-09-20 Пенетрантность Vlad Khorsun


Dmitri Kuzmenko ...


Hello, Vlad!

Vlad Khorsun wrote:


   Угу. Но БДЕ писалось во времена, когда клиент-сервер только начинал входить
в массы и толком было не понятно как с ним работать. Т.е. теоритически все всё 
знали
и понимали, а вот практических навыков (по крайней мере в Б) не было.


я позволю себе восстановить историческую справедливость.


   Я в курсе этого, но


В те давние времена Б, Н и еще кто-то создали архитектуру
IDAPI. М для себя сделал ODBC. IDAPI был лучше, но закрыт.


   Не факт, что он был лучше для _клиент-сервера_


А ODBC был глюкавый, но простой и открыт.
Так ODBC победил IDAPI.


   М, между прочим, в то время был далеко не так силён и богат, а вот
Б была на подъёме. Но с плохим пищеварением


А чего было наверчено в BDE, было более-менее оптимально
по тем временам именно как универсальное решение.


   Оптимально для _клиент-сервера_ ? Ох, не уверен... Но ОДБЦ
тогдашний тоже был не фонтан...

--
Хорсун Влад 





Re: Немного флейма. Транзакции

2007-09-20 Пенетрантность Ded


Kovalenko Dmitry wrote:

RSDN 


   Ля, и когда вы всё успеваете, да ещё и работать...

--
Regards. Ded.



Re: Немного флейма. Транзакции

2007-09-20 Пенетрантность Alex Cherednichenko

Привет, Dmitri!
Вы пишешь  20 сентября 2007:

[Sorry, skipped] 
 DK В те давние времена Б, Н и еще кто-то создали архитектуру
 DK IDAPI. М для себя сделал ODBC. IDAPI был лучше, но закрыт.
 DK А ODBC был глюкавый, но простой и открыт.
 DK Так ODBC победил IDAPI.

Вообще-то, спецификация ODBC базируется на CLI (Call Level Interface),
который был _изначально_ ориентирован на SQL-based DBMS
История мутная и с истинными прародителями не всё ясно.
http://en.wikipedia.org/wiki/Call_Level_Interface
И кто у кого кораллы закларил, тоже не совсем понятно...

-- 
With best regards, Alex Cherednichenko.




Re: Немного флейма. Транзакции

2007-09-20 Пенетрантность Kovalenko Dmitry
 Форум по плюсам, там - я вздрагиваю. В базах данных тоже думал что
 вроде ничего. Но за последние два дня - ниже плинтуса.

Я вот смотрю на ответы Ивана. Там в каждом сообщении слова -
напрягаться, сложно, устал, тупо ...

Однако,тяжела работа у программиста MSSQL. Изматывает и отупляет :))

Коваленко Дмитрий.


Re: Немного флейма. Транзакции

2007-09-20 Пенетрантность Vlad Khorsun


Kovalenko Dmitry ...

Форум по плюсам, там - я вздрагиваю. В базах данных тоже думал что
вроде ничего. Но за последние два дня - ниже плинтуса.


Я вот смотрю на ответы Ивана. Там в каждом сообщении слова -
напрягаться, сложно, устал, тупо ...


   Он не понимает, что

а) в IB\FB нет implicit тр-ций, т.е. тр-циями управляет _только_ клиент

   в MSSQL это не так и можно увидеть тысячи строк кода как клиентского, так
   и серверного (процедуры) без BEGIN TRAN. В процедурах, кстати, управление
   тр-циями разрешено и обычно там его и делают (если делают)

б) пример с фетчем и апдейтом односится тоже к клиенту, т.е. тр-ция 2 
(апдейтящая)
   не вычитаывет данные из БД, а получает их на клиенте - поэтому ей не нужно 
знать,
   что там меняла 1-я тр-ция (которая ничё не меняла, а только читала).

в) 1-я тр-ция видит изменения 2-ой, т.к. она read-committed, а не по другой 
причине

--
Хорсун Влад 





Re: Немного флейма. Транзакции

2007-09-20 Пенетрантность Dmitri Kuzmenko


Hello, Vlad!

Vlad Khorsun wrote:


IDAPI. М для себя сделал ODBC. IDAPI был лучше, но закрыт.


   Не факт, что он был лучше для _клиент-сервера_


не спорю.


   М, между прочим, в то время был далеко не так силён и богат, а вот
Б была на подъёме. Но с плохим пищеварением


да эта шайка-лейка вообще ведь развалилась. Кто там был
кроме Б и Н - сейчас уже не помню.

--
Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34




Re: Немного флейма. Транзакции

2007-09-20 Пенетрантность Dmitri Kuzmenko


Hello, Alex!

Alex Cherednichenko wrote:


Вообще-то, спецификация ODBC базируется на CLI (Call Level Interface),
который был _изначально_ ориентирован на SQL-based DBMS
История мутная и с истинными прародителями не всё ясно.
http://en.wikipedia.org/wiki/Call_Level_Interface
И кто у кого кораллы закларил, тоже не совсем понятно...


я может глючу, но мне кажется что ODBC иногда
сам пуляет на сервер запросы. И это не запросы
к метаданным. Т.е. якобы клиентский SQL
каким-то образом модифицируется. Это так и есть, или мне
почудилось?

--
Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34




Re: Немного флейма. Транзакции

2007-09-19 Пенетрантность Константин

MR 2. Чем режим 1 соединение - 2 транзакции отличаеться от режима 2
MR соединения в каждом по транзакции.

 А затраты на создание 2-го подключения ?

С уважением,
Константин Григорьевич.
===




Re: Немного флейма. Транзакции

2007-09-19 Пенетрантность Vlad Khorsun



Собственно вопросов 2 :)
1. В чем именно удобство стартовать много транзакций в одном соединении?
2. Чем режим 1 соединение - 2 транзакции отличаеться от режима 2
соединения в каждом по транзакции.


   А ты попробуй использовать, например, временную таблицу (ON COMMIT PRESERVE
ROWS), из разных коннектов. В общем - любые данные уровня сессии (вспомним 
пакеты
в том же Оракле)

--
Хорсун Влад 





Re: Немного флейма. Транзакции

2007-09-19 Пенетрантность Alexey Popov


Max Rezanov wrote:


1. В чем именно удобство стартовать много транзакций в одном соединении?


Удобно при работе с многими формами. В каждой форме своя транзакция
и они совершенно изолированы друг от друга. В противном случае надо
как то извращаться что бы работа в разных формах/модулях
не противоречила друг другу.


--
--- Home Page http://ok.novgorod.net/ap ---




Re: Немного флейма. Транзакции

2007-09-19 Пенетрантность Kovalenko Dmitry
   Наткунался щас на пост на рсдне по поводу невозможности в FB ADO.NET
   провайдере юзать несколько транзакций. Хотя похожий вопрос и тут уже
   возникал.
 p/s/
 Возможно ноги растуть из лицензий еще на IB но насколько я помню в 5.6
 на одну лицензию допускалось пять коннектов.

Макс, ты же вроде не первый год замужем. Ноги растут из другого места.

И вот этим самым местом и были придуманы вещи весьма сомнительной
ценности, однако, с помощью граммотной маркентиговой политики,
возведенные в ранг истины в последней инстанции.

Тем же Микрософтом, точнее одними из его реальных идеологов, был
сформулированы другие вещи, где есть и явная поддержка версионности и
несколько транзакций в рамках одного коннекста и несколько открытых
запросов (Про неожиданное появление первой и третьей вещи в
MSSQL2005 стоит напомнить?).

Вот только дети, которые с радостью едят то, что им суют в рот, про
это не догадываются.

Коваленко Дмитрий.

PS. Я помню сильно позабавил Диму Еманова, моей уверенностью что
останется только один, и этот один будет - Firebird :)))


Re: Немного флейма. Транзакции

2007-09-19 Пенетрантность Kovalenko Dmitry
   Наткунался щас на пост на рсдне по поводу невозможности в FB ADO.NET

Такой аблом Вот только я гвоздик под шкуру очередного барана в
стену забил, как злой модератор почистил все ветки.

Коваленко Дмитрий.


Re: Немного флейма. Транзакции

2007-09-19 Пенетрантность Alex Cherednichenko

Привет, Kovalenko!
Вы пишешь  19 сентября 2007:

 KD Такой аблом Вот только я гвоздик под шкуру очередного барана в
 KD стену забил, как злой модератор почистил все ветки.

Гы-гы-гы  :)
Иван всё ещё простить не может того, 
как его мокали носом в блюдце, по поводу MGA.
Свято оберегает свой заповедник...

-- 
With best regards, Alex Cherednichenko.




Re: Немного флейма. Транзакции

2007-09-19 Пенетрантность Kovalenko Dmitry
  KD Такой аблом Вот только я гвоздик под шкуру очередного барана в
  KD стену забил, как злой модератор почистил все ветки.

 Гы-гы-гы  :)
 Иван всё ещё простить не может того,
 как его мокали носом в блюдце, по поводу MGA.
 Свято оберегает свой заповедник...

Может написать ему за это - Иван, ты #%@ ! ?

Такого развлечения лишил.

Требую чтобы этот неверный отказался от ника IB!

Коваленко Дмитрий.


Re: Немного флейма. Транзакции

2007-09-19 Пенетрантность Vlad Khorsun


Alex Cherednichenko ...


Иван всё ещё простить не может того,
как его мокали носом в блюдце, по поводу MGA.
Свято оберегает свой заповедник...


   Надеюсь до него дошло, что MARS'у до нескольких тр-ций в одном коннекте
как... как... как до Марса пешком ? ;)

--
Хорсун Влад 





Re: Немного флейма. Транзакции

2007-09-19 Пенетрантность Kovalenko Dmitry
  Иван всё ещё простить не может того,
  как его мокали носом в блюдце, по поводу MGA.
  Свято оберегает свой заповедник...

 Надеюсь до него дошло, что MARS'у до нескольких тр-ций в одном коннекте
 как... как... как до Марса пешком ? ;)

Ваня наступил на эти грабли?

Эко как ... :shuffle:

Тогда понятно, почему он затер мой пост, в котором я начал стебаться
над неким kuj...

Кстати, мне там IB (он долго думал, наверное) написал, что транзакции
в MARS'e будут разные - я в 2005 не копенгаген, но думаю что что-то
тут не то. Хотя...

---
Whereas OLEDB used to disallow the implicit spawning of connections
whenever a transaction was active in the session, and ODBC used to
fail additional requests with the connection busy error, in the MARS-
enabled world these combinations now succeed. If the session has a
transaction active, all new requests run under the specified
transaction; if the session has no transaction active, each batch runs
in auto commit mode, implying that each statement executed runs under
its own transaction.
---

И неужто для этих own transaction отдельное подключение не
создается? :))

Коваленко Дмитрий.


Re: Немного флейма. Транзакции

2007-09-19 Пенетрантность Kovalenko Dmitry
   Наткунался щас на пост на рсдне по поводу невозможности в FB ADO.NET

Алекс, мне понравилась эта игра в хорошего и плохого полицейского. Ты
вне конкуренции. Япотстолом.

Коваленко Дмитрий.


Re: Немного флейма. Транзакции

2007-09-19 Пенетрантность Dmitri Kuzmenko


Hello, Nikolay!

Nikolay Ponomarenko wrote:


Кстати, а если абстрагироваться на более высокий уровень - хотя бы самого
соединения с БД и сокета - ведь для задачи ПАРАЛЛЕЛЬНОСТИ несколько
транзакций никак не применимы - все равно ведь они будут сериализованы,
пусть даже и на транспортном уровне, хотя конечно и уменьшат время реакции.


блин, ну элементарно же. Давайте представим что у нас 1 транзакция
на соединение. Грубо говоря, есть 1 IBDatabase который в себе содержит
IBTransaction. В результате придется или работать постоянно в 
commitretaining, или взять и положить столько IBDatabase сколько надо.


Допустим, если бы так и было, кто-нибудь замордованный таким фактом
придумал бы специальный IBDatabase, который бы сам открывал новый
коннект на новую транзакцию.

И это разумеется не ради параллельного выполнения операций, а просто
ради удобства.
Если я правильно понимаю блокировочные сервера, то длительная работа
любых транзакций (кроме dirty read) нежелательна по ресурсам
и блокировкам. Поэтому есть привычка к короткоживущим транзакциям,
буквально на пару тройку операторов. В версионнике нет смысла
жаться в этом плане. Можно себе позволить более долгие транзакции.

Вот и вся разница, на мой взгляд.


Остается только случаи необходимости именно _транзакционности_ некоторых
псевдо-параллельных действий, так?


тут ведь еще есть вот какой момент. Любовь к параллельным транзакциям
пошла из-за того, что BDE а потом и FreeIBComponents, и IBX/FIBPlus
убивают кэш в датасетах, т.е. закрывают запросы.
Именно отсюда возникла необходимость иметь возможность долго держать
открытыми датасеты, и одновременно стартовать и завершать транзакции
с другими датасетами.
А функциональность сервера это уже позволяла.

Дальше появился TClientDataSet, который мог держать кэш (рекордсет)
даже в случае закрытия коннекта. Только он не очень прижился.


Кстати, а кто знает, какие еще сервера умеют несколько транзакций в одном 
коннекте?
В оракле можно что-то эмулировать автономными транзакциями, но нормальных - нет.
А как в DB2, Postgress, MySQL, Sybase SQL Server, SQL Anywhere?


фиг знает. насколько я в курсе, стандартная архитектура почти всех 
драйверов, особенно поддерживающих массу серверов, это


один коннект+транзакция - много датасетов.

так получилось исторически, из-за влияния масс.
На мой взгляд это было так - сервером управляли командами
SQL. START TRANSACTION, FETCH и так далее.
Например в SELECT воткнуть информацию к какой он транзакции относится - 
некуда. Значит надо уметь переключать контекст транзакции в коннекте.

А для этого надо помнить на сервере транзакции, стартованные клиентом.
А нахрена париться, когда можно сказать - один коннект - одна 
транзакция - один рекордсет - и все.


А если над этим навешивать драйвер, то и тут нескольким транзакциям
на коннект неоткуда взяться. И т.д.

То есть, все дело привычки и архитектуры. Нет версионности -
тогда или dirty read или сериализация или блокировки. Есть
версионность - тогда snapshot. Есть n транзакций в одном коннекте -
на здоровье. Нет - открываем n коннектов (или вообще этим не занимаемся).

Кстати, на sql.ru в Сравнении СУБД регулярно возникает
вопрос умерли РСУБД или нет. Какое тут умерли, если до сих пор
баталия между версионниками и блокировочниками идет.
Можно сказать, что у РСУБД есть еще нераскрытый потенциал архитектур. :-)

p.s. что-то я не очень то ответил на rsdn. если хотите, можете
и это письмо туда форварднуть или процитировать.

--
Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34




Re: Немного флейма. Транзакции

2007-09-19 Пенетрантность Ded


Dmitri Kuzmenko wrote:


блин, ну элементарно же. Давайте представим что у нас 1 транзакция
на соединение. Грубо говоря, есть 1 IBDatabase который в себе содержит
IBTransaction. В результате придется или работать постоянно в 
commitretaining, или взять и положить столько IBDatabase сколько надо.


  Гы. Как быстро человек привыкает к хорошему... BDE забыл уже? :) Мы 
так в три датабазе на приложение и работали. А поскольку классика, то 
чтоб RAM с семафорами (SCO до них жуть охочая была) не жрать, после 
коммита модифицирующей транзакции ея коннект закрывали. А когда 
собирались модифицировать чево-то, открывали. А на тогдашнем железе да с 
нашей структурой коннект с загрузкой кеша метаданных шёл с полминуты, а 
то и поболе. Вот радость-то была...


--
Regards. Ded.



Re: Немного флейма. Транзакции

2007-09-19 Пенетрантность Vlad Khorsun


Dmitri Kuzmenko ...


тут ведь еще есть вот какой момент. Любовь к параллельным транзакциям
пошла из-за того, что BDE а потом и FreeIBComponents, и IBX/FIBPlus
убивают кэш в датасетах, т.е. закрывают запросы.


   Знать бы ещё - нафига они это делают...

--
Хорсун Влад 





Re: Немного флейма. Транзакции

2007-09-19 Пенетрантность Serge Buzadzhy


Vlad Khorsun пишет:


Dmitri Kuzmenko ...


тут ведь еще есть вот какой момент. Любовь к параллельным транзакциям
пошла из-за того, что BDE 


БДЕ по моему дофетчивало втихую.

а потом и FreeIBComponents, и IBX/FIBPlus
убивают кэш в датасетах, 


т.е. закрывают запросы.
Ну... запрос закрыть это один вопрос. Второй вопрос это кэш в датасетах. 
Запрос закрыть необходимо. Он просто перестает быть валидным при 
закрытии транзакции в рамках которой был открыт. Что собственно и понятно.





   Знать бы ещё - нафига они это делают...


Наша песня хороша - начинай сначала :) Обсуждали ужо. Хочешь - обсудм 
еще раз. Недофетченный запрос, чего с ним делать при закрытии 
транзакции? Дофетчивать втихаря перед закрытием? Нехорошо. Оставлять 
недофетченным тоже плохо. Оба варианта плохи еще тем что девелопер 
вообще может не заметить, что что-то делается без его ведома. Проблема 
вообще может всплыть, когда девелопер прогу юзеру отдал.  Посему датасет 
 и закрываем, уж этого-то не заметить нельзя, так что девелопер 
вынужден решать сию проблему вовремя... а не тогда когда она вдруг всплывет.



ЗЫ. Кстати в FIBPlus ( а может и в ИБХ) если датасет в режиме 
CachedUpdates  то при закрытии транзакции, датасет все-таки не 
закрывается, а дофетчивается.




Удачи