AXForum  
Вернуться   AXForum > Microsoft Dynamics CRM > Dynamics CRM: Разработка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.04.2017, 16:22   #1  
Ion is offline
Ion
Участник
 
332 / 16 (1) ++
Регистрация: 19.12.2012
Inclusion in database transactions
Всем привет!

Есть проблемы в плане области видимости рекордов. Речь идет о создании записи и плагине Post-operation (execution mode == sync). Насколько я понимаю, то данные в CRM и логика работы плагинов должна быть построенна исходя из уровня изолированости read committed.
То есть если у меня плагин и он последний в плане Execution Order, и в нем происходит ексепшен, то транзакция не была/не должна быть закомиченна полностью и происходит rollback. И по сути этот рекорд не должен быть visible из вне - так по крайней мере говорит мне логика что dirty reads не должно быть.
Но по-факту, у нас другая ситуация - и рекорд можно считать использую xrm (без NoLock = true).

Мне от интересно сама природа плагина играет в этом процессе роль: вызов SOAP сервиса и эксепшен в нем могут спровоцировать такую странную реакцию платформы при условии что все происходит синхронно?

Просто я не понимаю где гарантии?
Цитата:
If a plug-in is executing in the database transaction and allows an exception to be passed back to the platform, the entire transaction will be rolled back. Stages 20 and 40 are guaranteed to be part of the database transaction
То есть да, идет откат и рекорд удаляетсья из базы, но он же был визибл во время создания через публичный XRM API и пока последний плагин не завершил свой екзекюшен - разве может транзакция считаться закомиченной.



MS утверджает, что

Цитата:
Any registered plug-in that executes during the database transaction and that passes an exception back to the platform cancels the core operation. This results in a rollback of the core operation. In addition, any pre-event or post event registered plug-ins that have not yet executed and any workflow that is triggered by the same event that the plug-in was registered for will not execute.
Или я чего-то понимаю или это баг.

Последний раз редактировалось Ion; 13.04.2017 в 16:25.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Navigate Into Success: Database deployment of add-ins in NAV 2016 is broken, big time Blog bot Dynamics CRM: Blogs 0 25.01.2016 16:24
NAV Team: Upgrading from Microsoft Dynamics NAV 2009 R2 or Microsoft Dynamics NAV 2009 SP1 to Microsoft Dynamics NAV 2015 Blog bot Dynamics CRM: Blogs 0 23.02.2015 13:00
NAV Team: Manually restoring the NAV 2013 Demo Database Blog bot Dynamics CRM: Blogs 0 04.10.2012 06:24
Microsoft Dynamics NAV Database Archive for all Country Versions Blog bot Dynamics CRM: Blogs 0 11.03.2011 18:43
Microsoft Dynamics CRM Team Blog: Auditing Report Execution using the ReportServer Database Blog bot Dynamics CRM: Blogs 0 19.11.2008 20:05
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 00:28.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.