Показать сообщение отдельно
Старый 14.04.2017, 10:21   #6  
Ion is offline
Ion
Участник
 
332 / 16 (1) ++
Регистрация: 19.12.2012
Цитата:
Сообщение от Артем Enot Грунин Посмотреть сообщение
Увы, я не смог проследить вашу мысль. Вся воронка обработки, действительно, выполняется в транзакции. Увы, не могу с уверенностью утверждать, создаются ли дочерние транзакции под каждый плагин, или дочернее событие, но с уверенностью могу сказать, что каждый последующий плагин видит изменения, которые были внесены предыдущими. И это, имхо, правильно. Если вам нужно видеть исходные, не измененные данные, вы можете использовать механизм Image
Механизм у нас следующий: есть СРМ система и есть стороння система которая по скедулу забирает данные скажем по сущности "Заказы", исполязуя XRM API. На сущность заказы подвешен плагин и он исполняеться всегда последним. Допустим, в нем происходит эксепшен и все данные откатываються, удаляються из базы СРМ.
Но в это же самое время другая система делает кол через XRM API, и говорит: - А дай-ка мне последние созданные заказы. И мне неясно почему этот заказ стал видим если в последнем плагине произошел эксепшен и он откатился?
У нас же read commited, почему присутствует грязное чтение?
Мы можем его стабильно воспроизвести. Написали две тулы: первая - пишет данные в СРМ с прекондишеном, что в плагине будет эксепшен; вторая - как консолька мониторит новосозданные рекорды и забирает их к себе в систему.
От и весь сценарий, в систему попадают ИД заказов которых нет.
В той системе формируеться урл на рекорд из СРМ. Узер открывает запись, а ее в системе нет.

Последний раз редактировалось Ion; 14.04.2017 в 10:24.