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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 01.12.2008, 13:27   #21  
homer12 is offline
homer12
Участник
 
13 / 10 (1) +
Регистрация: 28.10.2008
Цитата:
Сообщение от ZooY Посмотреть сообщение
Вот кстати очень хороше что речь зашла о синхронности, потому что есть огромнейший вопрос насчет нее.
У меня тоже есть ощущение что синхронность/асинхронность здесь имееться ввиду для одного пользователя.

А то что это будут блокировки между пользователями, думаю с точки зрения производительности было бы большой ошибкой.

По крайней мере рефлектором я не увидел, что синхронные плагины ставяться в очередь, синхронные просто выполняются, один за другим.

Артем, у вас есть ссылочка где это описано?
Старый 01.12.2008, 16:15   #22  
Артем Enot Грунин is offline
Артем Enot Грунин
Moderator
Аватар для Артем Enot Грунин
MCBMSS
Злыдни
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,912 / 623 (28) +++++++
Регистрация: 16.08.2007
Адрес: Пермь!
Записей в блоге: 151
Есть ссылка только на SDK. Проблема быстродействия действительно есть, вот выдержка из этого же источника:
Registering a plug-in that performs lots of processing for a synchronous event can adversely affect the performance of the Microsoft Dynamics CRM system.
Где-то в блогах разработчиков проходила информация, что в 4.0 для оптимизации ресурсов создается только 1 инстанция каждого плагина, а не по экземпляру на callout как в 3.0. Исходя из этого, сомнительно, чтобы синхронность была лишь на уровне пользователя.
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия.

MS Certified Dirty Magic Professional
Старый 05.02.2009, 00:35   #23  
ZooY is offline
ZooY
Участник
Аватар для ZooY
 
377 / 46 (2) +++
Регистрация: 24.06.2008
Адрес: Россия, Москва
С полной уверенностью могу сказать - очередность выполнения плагинов возможна только в рамках обработки события. То есть если пользователь инициировал некоторое событие, то плагины, зарегистрированные на него возможно и объывленные как синхронные возможно будут выполнятся по очереди. В случае одновременной инициализации одним (или разными) пользователем нескольких одинаковых событий одной сущности, плагины будут выполнятьсяпараллельно. Уж не знаю, несколько ли раз при этом будут подключаться библиотеки с плагинами или они подключаются один раз и выполняются в разных потоках.

Уверенность моя исходит из следующего. Создал плагин который выполняет некоторое достаточно долгое действие. При начале работы плагин пишет в файл некий маркер (guid, чтобы отличать один экземпляр плагина от другого) и слово Start. По завершению работы тот же маркер и слово End. Повесил плагин на событие сущности. Создал workflow, которое инициирует событие сущности. Выделил две записи сущности и запустил workflow. Результат в файле был следующим:
Start
Start
End
End

Вот такие вот пирожки с котятами...
Старый 05.02.2009, 01:34   #24  
ZooY is offline
ZooY
Участник
Аватар для ZooY
 
377 / 46 (2) +++
Регистрация: 24.06.2008
Адрес: Россия, Москва
Да, и кстати... Мы почему-то стали путать и смешивать понятия синхронности плагинов и очередности выполнения. Синхронность всего лишь говорит о том что плагин выполниться при обработке события, а не когда то после. При этом синхронность (или асинхронность) никак не влияет ни на очередность выполнения плагинов в рамках одного события, ни на очередность вообще. Кстати, на сколько я понимаю, в отличии от колаутов, для плагинов вообще нельзя задать очередность (в рамках обработки одного события). В какой последовательности они будут выполняться (и в последовательности ли вообще, а может параллельно) - одному богу известно...
Старый 19.02.2009, 23:24   #25  
Савран Роман is offline
Савран Роман
Участник
 
58 / 17 (1) ++
Регистрация: 19.02.2009
Адрес: Киев, Украина
Ну раз уж так далеко зашло :)
SDK нигде не описан способ очередности обработки нескольких вызовов веб-сервисов, тем не менее 99,9% процентов, что они выполняются паралельно, это из личного опыта, связанного с нагрузочным тестированием. Все из информации, что доступно из СДК :
http://msdn.microsoft.com/en-us/library/cc151078.aspx
т.е. сущность "лочится", после выполнения пре-плагинов и "разлачивается" перед выпоолнением пост-плагинови и коллизия о которой говорит ZooY вполне возможна.

Если вы не доверяете майкрософту в плане разрешения таких коллизий, достаточно просто реализовать свой механизм, например при помощи семафоров для сущности "Нумератор". Для этого добавить поле, например new_islocked и перед какими-либо операциями устанавливать это поле в 1, при этом повесив на "Нумератор" пре-плагин, который отрубает попытку обновления, если значение семафора 1. После выполнения плагин должен вернуть значение семафора в 0.

Цитата:
Кстати, на сколько я понимаю, в отличии от колаутов, для плагинов вообще нельзя задать очередность (в рамках обработки одного события). В какой последовательности они будут выполняться (и в последовательности ли вообще, а может параллельно) - одному богу известно...
Для плагинов есть поле "Execution order" и хотя я не видел в СДК явного указания, что плагины выполняются последовательно (в рамках одного вызова веб-сервиса), я в этом практически уверен.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Microsoft Dynamics CRM Team Blog: Building Rich-Client Dashboards for Microsoft Dynamics CRM with Windows Presentation Foundation Blog bot Dynamics CRM: Blogs 1 31.03.2009 13:24
Microsoft Dynamics CRM Team Blog: List Web Part for Microsoft Dynamics CRM 4.0 Deployment Scenarios Blog bot Dynamics CRM: Blogs 0 30.01.2009 22:05
Microsoft Dynamics CRM Team Blog: Microsoft Dynamics CRM 4.0 Bookshelf Blog bot Dynamics CRM: Blogs 1 22.01.2009 04:46
Microsoft Dynamics CRM Team Blog: Reports for CRM 4.0 using SQL Server 2008 and Report Builder 2.0 Blog bot Dynamics CRM: Blogs 0 11.11.2008 08:05
Microsoft Dynamics CRM Team Blog: Top 14 Microsoft Dynamics CRM Sites and Downloads Blog bot Dynamics CRM: Blogs 0 14.07.2008 13:05

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

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

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