|
20.11.2012, 12:49 | #1 |
Участник
|
CRM 2011 ошибка при RetrieveMultiple
Код: IOrganizationService s = serviceFactory.CreateOrganizationService(context.UserId); QueryExpression qe = new QueryExpression("alv_reflegalinfoaccount"); qe.ColumnSet = new ColumnSet("alv_product", "alv_payment", "alv_service", "alv_reflegalupdate", "alv_typereflegal"); qe.Criteria.AddCondition(new ConditionExpression("alv_account", ConditionOperator.Equal, accountId)); var list = s.RetrieveMultiple(qe).Entities; if (list.Count == 0) return false; foreach (Entity ent in list) блаблабла { но он я думаю живет вобще своей жизнью потому что падает в ПЛАГИНЕ (а иногда не падает) с текстом ошибки An unexpected error occurred что вот ему надо... вытаскиваю обычные поля... ну они могут быть и не заполнены, но это я думаю не критично, фильтр обычный |
|
20.11.2012, 13:37 | #2 |
Чайный пьяница
|
Здравствуйте,
Советую посмотреть трейс. Думаю там будет ответ на ваш вопрос.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
20.11.2012, 16:02 | #3 |
Заноза в заднице
|
А на какой строке хоть падает - можно определить?
А вообще, если пользоваться SDK (имеется в виду toolkit для Visual Studio) - там вообще никакой мороки нет с созданием и отладкой плагинов. Про SDK у Артема Енота в блоге есть статья.
__________________
Лень мудрого человека - это необходимое средство нейтрализации кипучей активности руководящих им дураков! Последний раз редактировалось Likefire; 20.11.2012 в 16:05. |
|
20.11.2012, 16:10 | #4 |
Moderator
|
__________________
http://fixrm.wordpress.com, снятие/наведение порчи. Быстро, дорого, гарантия. MS Certified Dirty Magic Professional |
|
26.12.2012, 08:52 | #5 |
Участник
|
После долгого перерыва вновь вернулся к этой проблеме.
SQL Generic Error. Вот эта ошибка лезет и лезет Причем лезет она из разных мест, в основном когда делаю выборку Multiplie Уже во всех плагинах (которые писал по незнанию) прооптимизировал что мог в основном new ColumnSet(true) менял на те поля которые нужны, все стало даже значительно быстрей работать. Но ошибка эта всеравно остается. И при повторении действия пропадает. Юзеров это мучает. Далее, включил я трассировку, несколько дней изучал эти метры логов И пришел к выводу. Происходит дэдлок. Транзакция (идентификатор процесса 96) вызвала взаимоблокировку ресурсов блокировка | буфер связи с другим процессом и стала жертвой взаимоблокировки. Запустите транзакцию повторно. ну и что с этим делать не понятно... былоб хотя б в одном плагине. А то плагинов много, и в практически каждом из них иногда происходит эта ошибка. Иногда, но в каждом, дает в скупе МНОГО.... Кто сталкивался? |
|
26.12.2012, 09:21 | #6 |
Участник
|
нашел забавный код
http://www.broes.nl/2011/09/fighting...tom-workflows/ типа если блокировка, то подождать секундочку и еще раз ))) ну это бред чесслово)) |
|
26.12.2012, 10:11 | #7 |
Участник
|
Блокировка возможна. если Ваш плагин работает на событие сущности
alv_reflegalinfoaccount ЧТобы ее не было необходимо. qe.NoLock = true; Но это даст "грязные данные" Также возможно перевести Ваш плагин в асинхронный режим. Или если он зарегистрирован на шаге 20, перевести его на шаг 10. |
|
|
За это сообщение автора поблагодарили: kh_heckfy (1). |
26.12.2012, 11:29 | #8 |
Участник
|
А можно подробнее про "грязные данные"
что это значит? |
|
26.12.2012, 12:48 | #9 |
Участник
|
Возможно не актуальные.
Что происходит при блокировке. Есть запись, которую сейчас к примеру обновляют. Когда Вы используете NoLock неясно, какие данные из этой записи Вы получите. Старые, новые или половину старых и половину новых. Это есть рассматривать with (nolock) из SQL. Здесь я думаю аналогично. |
|
26.12.2012, 12:48 | #10 |
Чайный пьяница
|
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
26.12.2012, 13:40 | #11 |
Участник
|
да прочитал уже... понял...
блин и как же поступить... плагины все стоят с ORDER по умолчанию Может проставить им всем надо порядок... типа 1й выполнился, потом второй |
|
26.12.2012, 13:52 | #12 |
Чайный пьяница
|
Вы может свой сценарий расскажете - может архитектурно это можно решить?
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством. Подписывайтесь на мой блог, twitter и YouTube канал. Пользуйтесь моим Ultimate Workflow Toolkit |
|
27.12.2012, 10:25 | #13 |
Участник
|
У Вас там, для одной сущности несколько плагинов на том же Event/Stage?
__________________
Читайте SDK!!! |
|
|
|