Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
15-1244722907
ms1
2009-06-11 16:21
2009.08.16
Нагрузка на сервер Web


2-1245399366
parasolka
2009-06-19 12:16
2009.08.16
Зафиксировать размаер панели.


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


15-1245011026
DillerXX
2009-06-15 00:23
2009.08.16
Лексикографическая сортировка?!


2-1245389217
smolkown
2009-06-19 09:26
2009.08.16
Мониторинг печати





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский