Форум: "Прочее";
Текущий архив: 2009.08.16;
Скачать: [xml.tar.bz2];
ВнизНе пойму сути компонентов а-ля 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;
Скачать: [xml.tar.bz2];
Память: 0.71 MB
Время: 0.013 c