|
|
|
Паралелльные изменения
|
|||
|---|---|---|---|
|
#18+
Ivan_PisarevskyИспользуй везде снапшот и будет тебе счастье. я не изолировался никогда по той причине что не было конфликтов из всех параметров когда либо для транзакция я использовал такие параметры T1.TRParams.Add('isc_tpb_wait'); T1.TRParams.Add('write'); T1.TPBMode := 0;//tpbDefault; T1.TRParams.Add('read_committed'); T1.TRParams.Add('rec_version'); и не было других причин. Но т.к. появились долгие запросы которые приводят к появлению Lock conflict on no wait transaction. Deadlock. Update conflicts with concurrent update. Concurrent transaction number is 57492. есть необходимость такая оператор запускает запрос и запрос должен либо выполниться, либо висеть пока не закончиться какой то мешающий ему выполнить работу один из параметров я знаю это T1.TRParams.Add('isc_tpb_wait'); какие остальные выставить именно для этой ситуации? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2013, 09:39:51 |
|
||
|
Паралелльные изменения
|
|||
|---|---|---|---|
|
#18+
Евгений Болтиккакие остальные выставить именно для этой ситуации? Любые. Параметрами транзакции конфликт изменений не разрешить, надо логику БД переделывать. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2013, 12:44:14 |
|
||
|
Паралелльные изменения
|
|||
|---|---|---|---|
|
#18+
Евгений Болтик, Код: pascal 1. 2. 3. 4. 5. если T1 это pFIBTransaction, то imho код бредовый, ибо после вызова T1.TPBMode:=0; все ранее заданные параметры транзакции должны сброситься. Т.е. тут надо или трусы надеть, или крестик снять. Кроме того, зачем tpbDefault, если можно сразу написать tpbReadCommitted? Автор кода не читал про транзакции в FIBPlus, однозначно. Иначе неясен смысл вышеприведенной ахинеи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2013, 00:07:43 |
|
||
|
Паралелльные изменения
|
|||
|---|---|---|---|
|
#18+
ок, часть претензий снимается, но код все равно кривой, ибо строка T1.TPBMode := 0;//tpbDefault; должна быть первой при задании своих параметров транзакции. А второй строкой должна быть T1.TRParams.Clear; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2013, 00:09:53 |
|
||
|
Паралелльные изменения
|
|||
|---|---|---|---|
|
#18+
kdvок, часть претензий снимается, но код все равно кривой, ибо строка T1.TPBMode := 0;//tpbDefault; должна быть первой при задании своих параметров транзакции. А второй строкой должна быть T1.TRParams.Clear; СП. Т.к. в программе проблем не было транзакций не натыкано, а значит такого тупого кода с граблей тоже. Т.к. так глубоко не использовал и не думал Clear. Он действительно нужен. Все остальное разрулил. Теперь одновременно если запускаю с двух машин конфликтов нет. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2013, 17:43:06 |
|
||
|
Паралелльные изменения
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovЕвгений Болтиккакие остальные выставить именно для этой ситуации? Любые. Параметрами транзакции конфликт изменений не разрешить, надо логику БД переделывать. Ничего не надо переделывать. Просто транзакцию нужную запустить и все. Естественно надо понимать какую в каком случае. Почитал и воткнул ту что мне надо в этом месте. ;) Бузу респект за чтиво, хотя можно было бы как то попроще описать(мне было тяжело читать, но не все одинаково мыслят), но автор сам знает как надо. Я то же иногда пишу не все понимают. Хотя кто то с пол пинка понимает :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2013, 17:49:14 |
|
||
|
|

start [/forum/topic.php?fid=40&gotonew=1&tid=1564370]: |
0ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
162ms |
get topic data: |
6ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 193ms |
| total: | 415ms |

| 0 / 0 |
