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

Вниз

Не пойму сути компонентов а-ля TTransaction   Найти похожие ветки 

 
MsGuns ©   (2009-06-11 21:04) [80]

Так веь на одного Шевченко триста тридцать три Ковалей и Петренок ;)))


 
pasha_golub ©   (2009-06-11 21:23) [81]


> PEAKTOP ©   (11.06.09 16:57) [75]
>
> Значит, на пару часов младше :)))))


Значит, буду на пару часов трезвее :))))


 
pasha_golub ©   (2009-06-11 21:25) [82]

А что мешает вот в остальных серверах прикрутить такую мульку типа :


SWITCH TRANSACTION CONTEXT TO <ident>;


Ведь 2-хфазный коммит почти у всех есть, а эта фишка и того проще реализуется (я подозреваю). Или раз нету ни у кого кроме Файрберда, следовательно не настолько велика фишка?


 
vuk ©   (2009-06-11 21:46) [83]

to MsGuns ©   (11.06.09 20:55) [78]
>Такое впечатление, что Вы учились в Массачусетском технологическом ;)
Да, я учился в МТИ. Но не в том. :)

Вообще, я честно говоря, не понимаю, что мешает во время обучения в ВУЗе что-то еще самому параллельно изучать, если видно, что не хватает каких-то знаний. Лень? Ну так это чьи проблемы-то? :) Нам, вот, тоже фокспро преподавали, а не серверные БД. И что с того?


 
MsGuns ©   (2009-06-11 22:24) [84]

>vuk ©   (11.06.09 21:46) [83]
>Вообще, я честно говоря, не понимаю, что мешает во время обучения в >ВУЗе что-то еще самому параллельно изучать, если видно, что не хватает >каких-то знаний.

Да очмного чего.

1) Девушки
2) Футболы/волейболы/баскетболы/теннисы/велосипеды и тд
3) Хорошие компании
4) Музыка
5) Кино, театр, фестивали..
6) Куча всяких абавных хреновин, начиная от праздников и заканчивая розыгрышами и приколами.

Хотя, еслм Вы не жили в общаге, то, ИМХО, половина Вам непонятна просто

Зубрить науку в бурсе - дело последнее. Надо наслаждаться юностью, здоровьем и свободой, потом или того, или другого, или третьего не будет. Человек, осмысленно готовящий себя в ВУЗе к ОПРЕДЕЛЕННОЙ работе - явление чрезвычайно редкое, по крайней мере в мое время, и ничего, кроме сочувствия, у окружающих не вызывает.


 
Kerk ©   (2009-06-11 22:27) [85]


> MsGuns ©   (11.06.09 22:24) [84]
> 6) Куча всяких абавных хреновин

Вот сюда как раз входит все что угодно, начиная от ассемблера, заканчивая базами данных. У всех разные интересы :)


 
Игорь Шевченко ©   (2009-06-11 22:33) [86]


> Надо наслаждаться юностью, здоровьем и свободой, потом или
> того, или другого, или третьего не будет


Эт точно, потом лабу/курсач/диплом за деньги заказать слегка труднее будет


 
vuk ©   (2009-06-11 23:02) [87]

to MsGuns ©   (11.06.09 22:24) [84]:
>Да очмного чего.
Э... Нафига тогда в ВУЗ ходить? За липовыми корочками?


 
MsGuns ©   (2009-06-11 23:38) [88]

>vuk ©   (11.06.09 23:02) [87]
>Э... Нафига тогда в ВУЗ ходить? За липовыми корочками?

Институт учит двум вещам главным образом: умению учиться и умению постоять за себя.

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

Я вот учился в авиаинституте, но ни дня не работал в авиапромышленности. Спрашивается, зачем было зубрить самолетостроение, термех, основы электротехники, машиностроительное черчение и тучу всяких других наук, которыми меня кормили 5,5 лет ?
А другой 4 года изучал языки программирования и базы данных, а работать суждено было в торговой сети экономистом или банке охранником.

Хотя, конечно, у каждого свои представления об учебе в ВУЗе. Если у Вас то, что Вы там изучали, явилось базой для дальнейшей профессии и карьеры, то слава Богу. Но таких все же подавляющее меньшинство. Мы не Америка и не Европа, мы - Азия.


 
Игорь Шевченко ©   (2009-06-11 23:45) [89]

MsGuns ©   (11.06.09 23:38) [88]

География тоже не нужна покуда извозчик есть


 
MsGuns ©   (2009-06-11 23:49) [90]

>Игорь Шевченко ©   (11.06.09 23:45) [89]
>География тоже не нужна покуда извозчик есть

Ага, вилка тоже не нужна - можно хавать руками.
Давай не будем ерничать, а ?


 
Petr V. Abramov ©   (2009-06-11 23:59) [91]

вилка vs палочки, вот в чем вопрос, а не вилкой жрать или харей в рыбу
:)


 
Игорь Шевченко ©   (2009-06-12 00:54) [92]


> Давай не будем ерничать, а ?



> Спрашивается, зачем было зубрить самолетостроение, термех,
>  основы электротехники, машиностроительное черчение и тучу
> всяких других наук, которыми меня кормили 5,5 лет ?


Географией наверное тоже в школе пару лет кормили перед этим. А нафига ? И образ Базарова по жизни не пригодился.


 
Petr V. Abramov ©   (2009-06-12 01:17) [93]


> И образ Базарова по жизни не пригодился.

атвечать нэ учит, да?


 
MsGuns ©   (2009-06-12 01:26) [94]

>Игорь Шевченко ©   (12.06.09 00:54) [92]
>Географией наверное тоже в школе пару лет кормили перед этим. А >нафига ? И образ Базарова по жизни не пригодился.

Т.е. ты хочешь сказать, что без знания технологии самолетостроения или без основ функанализа человек столь же безграмотен, как и тот, что "читал" Бетховена или считает, что Америка граничит с Украиной ?


 
Игорь Шевченко ©   (2009-06-12 01:36) [95]

MsGuns ©   (12.06.09 01:26) [94]

Я хочу сказать, что если ты 5,5 лет учился "стоять за себя", то можно было выбрать область, ну скажем так, без самолетостроения.

ЗЫ: читают обычно Ван-гога.


 
Германн ©   (2009-06-12 02:02) [96]


> vuk ©   (11.06.09 19:20) [76]

Полностью согласен!
Я даже не о том, что все здешние мастера (может кроме ЮЗ) не получали "нормального" образования по программированию.
Я о том, что если хочешь чем-то овладеть, то нужно стремиться и стараться самому.


 
Холивар   (2009-06-12 02:46) [97]


> pasha_golub ©   (10.06.09 09:22)
>
> Вот тут общались с адептом Интербейз (файрберд) + FIBPlus
> и он мне тыкал: "мол, цыгане вы неразумные. У нас вот TpFIBTransaction.
>  поназначал каждому query по транзакции и вперед в многопоточность.
>  каждая qeury когда захотела и дергается к базе, а TpFIBTransaction
> рулит"


Он не адепт, он адиот!

Нельзя из нескольких потоков одновременно что-то делать через одно DBConnection. Это сами разработчики Firebird говорят(про IB не знаю). Несколько транзакций в одном подключении нужны только тогда, когда тебе в одном потоке!!! нужно работать одновременно с двумя и более Query вот там эта фишка рулит, так как чуть-чуть снижает нагрузку на сервер.


 
MsGuns ©   (2009-06-12 08:03) [98]

>Холивар   (12.06.09 02:46) [97]

Сам понял что сказал ?


 
Холивар   (2009-06-12 15:21) [99]


> MsGuns ©   (12.06.09 08:03) [98]
>
> >Холивар   (12.06.09 02:46) [97]
>
> Сам понял что сказал ?


Угу. Например один Query в snapshot транзакции - читающий, другой в пишущей ReadCommited. В общем такое более подходит для работы с базой из основного VCL потока и кучи разных форм. Многопоточностью там и не пахнет.

Если много потоков то должно быть или много DBConnection или синхронизация к одному DBConnection через CS.


 
PEAKTOP ©   (2009-06-12 17:25) [100]

> Нельзя из нескольких потоков одновременно что-то делать через одно DBConnection

Бред.

> Если много потоков то должно быть или много DBConnection или синхронизация к одному DBConnection через CS.

Слушай, а вот это: http://sql.ru/forum/actualthread.aspx?tid=671770 не ты ли затеял ?

Читай ответ Dimitry Sibiryakov http://sql.ru/forum/actualthread.aspx?tid=671770#7293820


 
MsGuns ©   (2009-06-12 17:39) [101]

>Холивар   (12.06.09 15:21) [99]
>Угу. Например один Query в snapshot транзакции - читающий, другой в пишущей >ReadCommited. В общем такое более подходит для работы с базой из основного VCL потока и >кучи разных форм. Многопоточностью там и не пахнет.

Вы путаете потоки и транзакции. Что имеется в виду под "работой с базой из основного VCL-потока" ? И каким образом можно организовать "многопоточность" при извлечении данных и их правкой (апдейтами) - не успели прочитать, как уже редактируем ?

>Если много потоков то должно быть или много DBConnection или синхронизация к одному >DBConnection через CS.

С какой радости ?


 
Игорь Шевченко ©   (2009-06-12 17:41) [102]


> С какой радости ?


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


 
MsGuns ©   (2009-06-12 17:52) [103]

Если потоки являются взаимонезависимы, т.е. получают каждый свои данные и только сам же их обрабатывает, то коннект для каждого потока создавать необязательно. А вот если зависимость имеется, т.е. один поток получает данные, а второй их обрабатывает и отсылает не сервер изменения, таки да. И в этом случае надо строить неслабую систему синхронизации. (к вопросу о все решающем TClientDatasSet, если я правильно расшифровал аббревиатуру Холиваара)
Но вот второй случай - это вообще-то специфика систем РМВ. В обычных же "базовых" приложениях одна транзакция читает, а другая пишет. Обе в одном соединении. Только причем здесь многопоточность ?


 
MsGuns ©   (2009-06-12 17:57) [104]

Кстати, при создании многопоточной технологии работы с БД приходится очень много чесать репу ибо при "обычном" подходе выясняется, что много эффективнее отсылать запросы серверу и обрабатывыать результаты последовательно, нежели каждый пихать в поток. При этом нет выигрыша по скорости (даже проигрыш) и винда периодически "подвешивается".

Вот сейчас как раз пишу такую фиговину - разузловка нескольких составов изделий одновременно с отображением хода каждого процесса типа On-line.
Куча мелких и не очень проблем, хотя потоки взаимонезависимы.


 
Игорь Шевченко ©   (2009-06-12 19:20) [105]


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


такая концепция приводит в ряде случаев к трудноуловимым ошибкам.


> Кстати, при создании многопоточной технологии работы с БД
> приходится очень много чесать репу ибо при "обычном" подходе
> выясняется, что много эффективнее отсылать запросы серверу
> и обрабатывыать результаты последовательно, нежели каждый
> пихать в поток. При этом нет выигрыша по скорости (даже
> проигрыш) и винда периодически "подвешивается".


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


 
Холивар   (2009-06-12 19:30) [106]


> PEAKTOP ©   (12.06.09 17:25) [100]
>
> > Нельзя из нескольких потоков одновременно что-то делать
> через одно DBConnection
>
> Бред.


Результатом такого подхода - доступ к базе из нескольких потоков - потом становятся долгие месяцы отлова бага в каком-либо серьезном проекте. Так как юнит-тесты для многопоточного тестирования писать не очень просто и результаты не всегда однозначны.

До сих пор многопоточное программирование удел Senoir Developers.


 
turbouser ©   (2009-06-12 19:32) [107]


> Холивар   (12.06.09 19:30) [106]


> До сих пор многопоточное программирование удел Senoir Developers.

Это кто такие?


 
Холивар   (2009-06-12 20:26) [108]


> turbouser ©   (12.06.09 19:32) [107]
>
>
> > Холивар   (12.06.09 19:30) [106]
>
>
> > До сих пор многопоточное программирование удел Senoir
> Developers.
>
> Это кто такие?


Senior Developers


 
turbouser ©   (2009-06-12 20:41) [109]


> Холивар   (12.06.09 20:26) [108]

Да я и так догадался. Интересно просто, как это определяется - сеньер девелопер или не сеньер?
И почему у них такой удел?


 
PEAKTOP ©   (2009-06-12 21:00) [110]

> Результатом такого подхода - доступ к базе из нескольких
> потоков - потом становятся долгие месяцы отлова бага в каком-
> либо серьезном проекте


Молодой человек, я шо-то совсем Вас не пойму.
Вы таки на шо жалуетесь: на проблемы при написании многопоточных приложений для Firebird, работающих через один хендл подключения, или на неумение программировать ?

Первое - бред. Это я Вам как Firebird Foundation DocWriter заявляю. Через один хендл подключения (компонент T<..>DataBase) нормально работают мультитредовые приложения. Даже в поделке Джефа Оверкеша под названием IBX.

Второе - не проблема, научитесь.

> Интересно просто, как это определяется - сеньер девелопер или не сеньер?

Наверное, наличием сертификата ?
Только вопрос, кто его выдает-то. Я вот ни разу не синьор, и даже не джуниор. Но писать нормально мне это не мешает.
А пару сеньоров даже в моей глухой провинции доводилось встречать. За то, как они реализовывали некоторые тривиальные веши - надо бить молотком по пальцам. Шоб говнокода в мире не стало еще больше.


 
turbouser ©   (2009-06-12 21:06) [111]


> PEAKTOP ©   (12.06.09 21:00) [110]


> За то, как они реализовывали некоторые тривиальные веши
> - надо бить молотком

Так я потому и спрашиваю... Весь кайф обломал :)


 
Холивар   (2009-06-12 22:14) [112]


> PEAKTOP ©   (12.06.09 21:00) [110]
>
> Первое - бред. Это я Вам как Firebird Foundation DocWriter
> заявляю. Через один хендл подключения (компонент T<..>DataBase)
> нормально работают мультитредовые приложения.


Только и в литературе по FireBird и в документации очень не рекомендуется так делать. Простое правило 1 коннект - одновременно один поток приведёт к серьезному сокращению времени на будущий багфиксинг. А пул коннектов Java-like написать совсем не проблема.


 
Холивар   (2009-06-12 22:16) [113]


> turbouser ©   (12.06.09 20:41) [109]
>
>
> > Холивар   (12.06.09 20:26) [108]
>
> Да я и так догадался. Интересно просто, как это определяется
> - сеньер девелопер или не сеньер?
> И почему у них такой удел?


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


 
turbouser ©   (2009-06-12 22:42) [114]


> Холивар   (12.06.09 22:16) [113]


> Сеньёр - тот кто пишет ПО не так чтобы код круто выглядел,
>  а чтобы работало, по-возможности, всегда и везде без особых
> проблем.

Нет.. не быть мне сеньером...


 
PEAKTOP ©   (2009-06-13 10:54) [115]

> Только и в литературе по FireBird и в документации очень  не рекомендуется так делать

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

<OFFTOP>
У нас в Украине уголовный кодекс наносить гражданам тяжкие телесные повреждения тоже не рекомендует делать. А в случаях необходимой самообороны при нападении - разрешает. А из жизненного опыт Вам скажу, что это не только можно делать, но и нужно делать.
=)
</OFFTOP>


 
Anatoly Podgoretsky ©   (2009-06-13 11:02) [116]

> PEAKTOP  (13.06.2009 10:54:55)  [115]

Ты угрожаешь?


 
PEAKTOP ©   (2009-06-13 11:26) [117]

> Anatoly Podgoretsky ©   (13.06.09 11:02) [116]
>
> Ты угрожаешь?


Да боже упаси. Я аналогию просто провел =)


 
MsGuns ©   (2009-06-13 13:14) [118]

>Игорь Шевченко ©   (12.06.09 19:20) [105]
>такая концепция приводит в ряде случаев к трудноуловимым ошибкам.

Там написано "Необязательно". Не углядел ?

>Все зависит от задачи и от используемого сервера. А что до "винда >подвешивается", так то зависит от танцора

Свои тараканы, конечно, всегда имеются в виду. Но !.
ADO в "компании" с мсслл тоже не идеальны. Например, при работе в асинхронном режиме. Это нужно, чтобы иметь возможность по требованию клиента прекратить выполнение  сервером некоторой работы (в данном случае - разузлования, котрое может продолжаться минуты и даже десятки минут).
Указываешь асинхрон коннекту - ничего не виснет на экране, но и сервер не останавливается пока не завершит работу. Даешь асинхрон команде - сервер рубится почти мгновенно, но виснет прога. Где-то есть, наверное, решение, но пока вот не нашел..


 
MsGuns ©   (2009-06-13 13:17) [119]

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


 
sniknik ©   (2009-06-13 15:51) [120]

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

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

> Где-то есть, наверное, решение, но пока вот не нашел..
асинхрон команде, а для ее остановки "глушить" коннект (active:= false).
должно получиться... и если получится смотри действия которые выполняются, для команды при закрытии коннекта в генофонде.

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

> На каждый поток - свой коннешн и свой комманд
можно и один коннект в общем и "свой комманд" в каждом потоке (без асинхронности!), но тогда общий коннект будет ставить команды в общую очередь. т.е. будет не совсем то, что хочется, когда делаешь потоки, так?

в общем у ADO есть своя идеалогия (как и у транзакций в сабже и всего другого), и ее нужно соблюдать, или будут глюки.



Страницы: 1 2 3 4 вся ветка

Текущий архив: 2009.08.16;
Скачать: CL | DM;

Наверх




Память: 0.73 MB
Время: 0.023 c
2-1245167149
worldmen
2009-06-16 19:45
2009.08.16
Бастро посчитать в TEdit сумму


15-1245213184
@!!ex
2009-06-17 08:33
2009.08.16
прикольная реклама gmail


2-1245271265
Zalm
2009-06-18 00:41
2009.08.16
Проблемы с DateToStr


2-1245319255
Fr
2009-06-18 14:00
2009.08.16
Сортировка TListView в виртуальном режиме.


3-1226010464
DOjD
2008-11-07 01:27
2009.08.16
Как определить происходит ли выборка данных запросом или нет?