Вход | Регистрация

1С:Предприятие ::

Метки: 

Количество операций в транзакции

Я
   User_Agronom
 
10.04.14 - 17:21
Есть обработка, которая генерит много-много документов.
Но в процессе может быть создан некорректный элемент. Тогда получиться часть документов сгенерирована, а часть нет. Что недопустимо.

Есть идея использовать транзакцию. Т.е. перед началом генерации начать транзакцию, а если нашел ошибку транзакцию отменить.

Вопросы:
1. Будет ли работать этот вариант?
2. Какие неприятности могут встретиться?
3. Сколько документов (в штуках) может быть в транзакции?

PS Другие пути знаю, но эта обработка уже написана, поэтому этот самый наименее затратный путь.
 
  Рекламное место пустует
   fisher
 
1 - 10.04.14 - 17:25
1. Работать будет, если не (см. ниже)
2. Транзакции не рассчитаны на массовые операции - упор в ресурсы может случиться.
3. Зависит от сервака и объемов изменяемых данных.
   Maxus43
 
2 - 10.04.14 - 17:27
поидее можно увидеть будет что каждая следующая "5-ти тыщная" операции будет медленнее и медленнее, опять же от объёма зависит.
   fisher
 
3 - 10.04.14 - 17:29
Короче, с какого-то момента может начать жутко свопить и потом что фиксация транзакции, что её откат будут занимать прорву времени. Не говоря уже о том, что другим пользователям все это время нехорошо будет.
   Maxus43
 
4 - 10.04.14 - 17:31
обмены напримерв транзакции идут, загрузка, у нас бывает и по 2 часа прёт, несколько мильёнов плохих данных... и ничо вроде, фиксится потом. Правда юзеры обычно курят бамбук в это время
   Зойч
 
5 - 10.04.14 - 17:31
на эскалацию блокировок можно нарваться
   Зойч
 
6 - 10.04.14 - 17:32
но если нужно либо все либо ничего то транзакция правильный вариант.
Но почему нужны все 5 тыщ документов одновременно непонятно
   User_Agronom
 
7 - 10.04.14 - 17:37
(6) Там две базы и два буха. Один бух выгружает в файл, второй загружает из этого файла. Это уже написано. Но, в случае ошибки, повторная загрузка плодит дубли.
Говорится о 150-200 документах за раз. Базы файловые. Нужно решить задачу с минимальными потерями.
   ДенисЧ
 
8 - 10.04.14 - 17:38
(7) переделать обработку, чтобы дубли не возникали - не предлагать?
   Зойч
 
9 - 10.04.14 - 17:39
>>Но, в случае ошибки, повторная загрузка плодит дубли
Лучше пойти по исправлению этого момента
   Gepard
 
10 - 10.04.14 - 17:39
(8) +1 по гуиду
 
 
   Зойч
 
11 - 10.04.14 - 17:40
А то грузишь 9 999 документов 5 часов а на 10 000 ошибка.
И ты такой "бл.....я"
   User_Agronom
 
12 - 10.04.14 - 17:41
(8) см (0) PS Другие пути знаю, но эта обработка уже написана, поэтому этот самый наименее затратный путь

Вставить три строки самый быстрый вариант.
   _fvadim
 
13 - 10.04.14 - 17:43
(12) и самый неправильный
а если бух случайно предыдущий файл ещё раз загрузила?
   Maxus43
 
14 - 10.04.14 - 17:50
по сабжу да, транзакция спасёт.
То что это всё кривоватенько организовано - уже сказано
   User_Agronom
 
15 - 10.04.14 - 17:50
(9) Согласен. Думал об этом.
(13) Переписать:
1. Разобраться в назначении обработки.
2. Разобраться в структуре файла выгрузки.
3. Разобраться в коде загрузки.
4. Переделать код.
5. Тестировать код
6. Если тест не прошел переход к п.4

С транзакцией.
1. Найти цикл. 
2. Перед началом цикла вставить команду начала транзакции
3. После конца цикла вставить команду конца транзакции
4. В теле цикла вставить проверку и, в случае непрохождения, команду отката транзакции и завершения процедуры.

Не в пример быстрее. Фактор времени актуален.
   User_Agronom
 
16 - 10.04.14 - 17:51
(14) Организовано не мной. Нужно с минимальными потерями устранить эту недоработку.
   Зойч
 
17 - 10.04.14 - 17:53
(15) а как борятся с ошибками? вот ошибка в файле и не грузится, как исправлять?
   Maxus43
 
18 - 10.04.14 - 17:55
делай транзакцию, раз переделывать не будешь всё равно.
200 доков за раз - вобще ниочем


Список тем форума
Рекламное место пустует   Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует