Попытка в транзакции или транзакция в попытке? #762279


#0 by Shved_72
Обработка обрабатывает данные. При включении транзакции в каком то месте вылетает ошибка "В данной транзакции уже происходили ошибки" и завершить работу. Как заставить перепрыгнуть через такие ошибки и идти дальше. При отключении транзакции всё гуд - т.е. то место проскакивает и робит дальше. Щас схема такая:    попытка      попытка        ..... и так мноного много вложеннгных попыток      конецппопытке    конецппопытке   конецппопытке ЗафиксироватьТр Исключение ОтменитьТр конецСамойВерхнейпопытке подозреваю что срабатывая на любом уровне вложенности попытки, исключение вырубает все верхнестоящие попытки и транзакцию целиком
#1 by Shved_72
Пробовал запуск и отмену через проверку актвиности но пока никак
#2 by Heckfy
А если сначала через попытки сформировать ТЗ, например, с необходимой иформацией, а потом в транзакции эту ТЗ обработать....
#3 by Записьдампа
Программирование методом тыка? При возникновении исключения, связанного с обращением к базе, транзакция считается поломанной и первое же обращение к базе после развала приводит к сообщению об ошибке. Единственное, что можно сделать после такого сключения - отменить транзакцию. Так что переписывай копрокод из вложенных попыток на проверку условия, типа если успешно тогда следующий шаг иначе отменить транзакцию возврат
#4 by Heckfy
И да, по вопросу сабжа, вообще то транзакция должна быть в попытке. :)
#5 by Записьдампа
Почему?
#6 by Злопчинский
если исходить из того что предыдущий код написан корректно то сама инициализация транзакции не приводит ни к каким блокировкам и поэтому какой смысл  нициализацию транзакции обертывать в попытку?
#7 by Shved_72
перескочить через исключение нельзя? если в одной транзакции записывается 100 объектов и на 90ой ошибка, нельзя ли побрить только одну 90ую, а 99 успешно записать?
#8 by Shved_72
т.е. транзакция не рекомендует попытки ваще, ибо если чото не так то тока "Завершение работы". а нельзя Исключение переобределить и просто молча поругаться и дальше идти? ПС гдето в детстве читал про яву и исключения
#9 by Злопчинский
в чем смысл транзакци подумай Обертывай в транзакцию каждый объект
#10 by Shved_72
и почему в этом случае не спасает метод ТранзакцияАктивна ведь я не отменяю и не пытаюсь фиксировать транзакцию если ТранзакцияАктивна=Ложь, т.е. по идее должен дальше идти
#11 by Shved_72
в моем случае в скорости. 100 за раз пишет быстрей чем 100 по 1
#12 by Shved_72
обёртывается кусок какой то бизнес-логики, который по частям не имеет смысла и существовать не может. хотя наверно да. изза этого смысла смысл Завершения работы понятен. несмог кусок записать - иди домой
#13 by Drac0
Транзакция в первую очередь должна гарантировать целостность данных, потом все остальное. Поэтому ошибка в одной записи из ста в транзакции должна откатить всю транзакцию.
#14 by Shved_72
ок. уговорили. буду ускорять другими методами
#15 by Shved_72
как из оперативной памяти сделать диск залить туда базу
#16 by Злопчинский
хз я сколько ни пробовал на клюшках закинуть базу в рамдрайв - пользы это практически не принесло Имеет смысл сначала темпы переназначить на рамдрайв
#17 by Shved_72
темпы скуля? или от агента 1с? а кстати можно ли только их переназначить файлы создаваемые rmngr.exe? они вторые по потреблению диска
#18 by Shved_72
хотя это лгбд. пусть пишет
#19 by Shved_72
а писиай ссд ктонить юзал? вроде эта шина быстрей PCI-E, чтение - 770 Мбайт/с, запись - 580 Мбайт/с
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С