|
Не фиксируется транзакция в цикле | ☑ | ||
---|---|---|---|---|
0
mvgfirst
11.10.16
✎
20:25
|
Есть некая база.
Написал простую обработку суть которой - помечать на удаление документы Алогритм такой: Запросом выбираем первых 500 документов без пометки помечаем и делаем запрос повторно. пока все документы не будут помечены. Использую транзакции. Обнаружил интересный эффект: Сперва сдела так: НачатьТранзакцию Цикл ПометкаНаУдаление ЗафиксироватьТранзакцию НачатьТранзакцию КонецЦикла ЗафиксироватьТранзакцию Обнаружил непонятное для себя поведение системы - транзакция не закрывается. Это видно даже по журналу регистрации переписал на: Цикл НачатьТранзакцию ПометкаНаУдаление ЗафиксироватьТранзакцию КонецЦикла все нормально заработало. В общем проблема как бы решена. Но мне не понять почему в первом варианте не отрабатывало закрытие транзакции?? Не исключаю что я что-то где-то недочитал в документации... хотя перед тем как писать и гуглил и СП читал ... несколько раз. Ответа нет, как и какого либо упоминания о циклах... Везде только о вложенности транзакций... но у меня нет вложенности. ни в первом ни во втором варианте решения... Кто-нибудь сталкивался с подобным? Или на лицо ошибка, если да то в чем заключается уточните пожалуйста.... |
|||
1
RomanYS
11.10.16
✎
20:30
|
Кто-то что-то не договаривает...
Скорей всего ты "делал запрос повторно" до фиксации транзакции, хотя тогда бы, наверное, всё зациклилось на первой порции |
|||
2
GROOVY
11.10.16
✎
20:34
|
Зачем тут явная транзакция?
|
|||
3
mvgfirst
11.10.16
✎
20:35
|
Такой вариант у меня тоже был )))
Сутки обработка якобы удаляла документы... Но это было выявлено и устранено. Запрос выполняется после фиксирования транзакции. Да и по журналу регистрации видно что документы помечаются на удаление и они разные... но все в одной транзакции состояние которой "незавершена"... Все это еще и приводило к разрастанию ТЕМП ДБ |
|||
4
mvgfirst
11.10.16
✎
20:37
|
(2) Ну на всяких там инфострартиках прочитал что использование транзакций ускоряет процесс удаления.
Дело не в том зачем она здесь а в феномене на который я "наступил". Т.е. если открыть транзакцию до цикла а потом в цикле закрыть и открыть новую то получается что транзакция не закрывается |
|||
5
MrStomak
11.10.16
✎
21:12
|
(4) быстрее оно только на файловой будет.
Поведение ненормальное, хотелось бы реальный код. Может быть и глюк ЖР, нужно проверять через попытку отката |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |