|
Попытка в транзакции или транзакция в попытке? | ☑ | ||
---|---|---|---|---|
0
Shved_72
09.01.16
✎
14:35
|
Обработка обрабатывает данные.
При включении транзакции в каком то месте вылетает ошибка "В данной транзакции уже происходили ошибки" и завершить работу. Как заставить перепрыгнуть через такие ошибки и идти дальше. При отключении транзакции всё гуд - т.е. то место проскакивает и робит дальше. Щас схема такая: НачатьТранзакцию() попытка попытка попытка ..... и так мноного много вложеннгных попыток конецппопытке конецппопытке конецппопытке ЗафиксироватьТр Исключение ОтменитьТр конецСамойВерхнейпопытке подозреваю что срабатывая на любом уровне вложенности попытки, исключение вырубает все верхнестоящие попытки и транзакцию целиком |
|||
1
Shved_72
09.01.16
✎
14:37
|
Пробовал запуск и отмену через проверку актвиности
Если (НЕ ТранзакцияАктивна()) и (ЧерезТранзакцию) Тогда НачатьТранзакцию(); КонецЕсли; но пока никак |
|||
2
Heckfy
09.01.16
✎
15:01
|
А если сначала через попытки сформировать ТЗ, например, с необходимой иформацией, а потом в транзакции эту ТЗ обработать....
|
|||
3
Записьдампа
09.01.16
✎
15:08
|
(1) Программирование методом тыка?
При возникновении исключения, связанного с обращением к базе, транзакция считается поломанной и первое же обращение к базе после развала приводит к сообщению об ошибке. Единственное, что можно сделать после такого сключения - отменить транзакцию. Так что переписывай копрокод из вложенных попыток на проверку условия, типа если успешно тогда следующий шаг иначе отменить транзакцию возврат |
|||
4
Heckfy
09.01.16
✎
15:11
|
И да, по вопросу сабжа, вообще то транзакция должна быть в попытке. :)
|
|||
5
Записьдампа
09.01.16
✎
15:14
|
(4) Почему?
|
|||
6
Злопчинский
09.01.16
✎
15:28
|
(4) если исходить из того что предыдущий код написан корректно то сама инициализация транзакции не приводит ни к каким блокировкам и поэтому какой смысл нициализацию транзакции обертывать в попытку?
|
|||
7
Shved_72
09.01.16
✎
15:55
|
(3) перескочить через исключение нельзя?
если в одной транзакции записывается 100 объектов и на 90ой ошибка, нельзя ли побрить только одну 90ую, а 99 успешно записать? |
|||
8
Shved_72
09.01.16
✎
15:58
|
т.е. транзакция не рекомендует попытки ваще, ибо если чото не так то тока "Завершение работы".
а нельзя Исключение переобределить и просто молча поругаться и дальше идти? ПС гдето в детстве читал про яву и исключения |
|||
9
Злопчинский
09.01.16
✎
16:00
|
(7) в чем смысл транзакци подумай
Обертывай в транзакцию каждый объект |
|||
10
Shved_72
09.01.16
✎
16:00
|
и почему в этом случае не спасает метод ТранзакцияАктивна() ведь я не отменяю и не пытаюсь фиксировать транзакцию если ТранзакцияАктивна()=Ложь, т.е. по идее должен дальше идти
|
|||
11
Shved_72
09.01.16
✎
16:01
|
(9) в моем случае в скорости. 100 за раз пишет быстрей чем 100 по 1
|
|||
12
Shved_72
09.01.16
✎
16:04
|
обёртывается кусок какой то бизнес-логики, который по частям не имеет смысла и существовать не может.
хотя наверно да. изза этого смысла смысл Завершения работы понятен. несмог кусок записать - иди домой |
|||
13
Drac0
09.01.16
✎
16:13
|
(7) Транзакция в первую очередь должна гарантировать целостность данных, потом все остальное. Поэтому ошибка в одной записи из ста в транзакции должна откатить всю транзакцию.
|
|||
14
Shved_72
09.01.16
✎
16:17
|
ок. уговорили. буду ускорять другими методами
|
|||
15
Shved_72
09.01.16
✎
16:17
|
как из оперативной памяти сделать диск залить туда базу
|
|||
16
Злопчинский
09.01.16
✎
16:20
|
(15) хз я сколько ни пробовал на клюшках закинуть базу в рамдрайв - пользы это практически не принесло
Имеет смысл сначала темпы переназначить на рамдрайв |
|||
17
Shved_72
09.01.16
✎
16:36
|
(16) темпы скуля? или от агента 1с? а кстати можно ли только их переназначить файлы создаваемые rmngr.exe? они вторые по потреблению диска
|
|||
18
Shved_72
09.01.16
✎
16:38
|
хотя это лгбд. пусть пишет
|
|||
19
Shved_72
09.01.16
✎
16:41
|
а писиай ссд ктонить юзал? вроде эта шина быстрей
http://technopoint.ru/catalog/i1016980/ssd-nakopitel-plextor-m6e-black-edition PCI-E, чтение - 770 Мбайт/с, запись - 580 Мбайт/с |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |