Добро пожаловать в мой блог! Изначально он не задумывался как блог CRM разработчика, но жизнь сама внесла нужные коррективы. Тут я публикою все свои наблюдения относительно обозначенных в заголовке систем. Если Вы найдете в нем что-то интересное для Вас, как для заказчика, то буду рад сотрудничать с Вами! В моей компетенции 100% задач по MS CRM 3.0/4.0/2011:
MVP 2010, 2011
- Консалтинг
- Проектирование
- Разработка
- Обучение
MVP 2010, 2011
Ошибка обновления Организации при установке UpdateRollup
Запись от Артем Enot Грунин размещена 11.04.2013 в 19:19
Теги bug, organization, sql, update
Сегодня я обнаружил, что некоторые организации на моем тестовом сервере не обновились до последней версии:
Эта информация отображается в списке организаций в CRM Deployment Manager. Раньше я встречал подобное на форуме, но поскольку не сталкивался сам, мне нечего было ответить.
Судя по статье базы данных Microsoft Dynamics CRM 2011 updates and hotfixes. Моя организация осталась в состоянии UR6. В интернете так же упоминается, что аналогичная проблема бывает с UR11 и что в процессе установки обновления можно встретить сообщение:
Как бы то ни было, переустановка пакета обновления не требуется, так как Deployment Manager позволяет обновить организации, версии которых отстали от версии развертывания. Для этого достаточно выделить в списке нужную организацию, после чего выбрать опцию Update на панели операций справа.
Казалось бы просто, но в результате я получил ошибку следующего вида:
На форумах советуют перезагружать IIS, SQL весь сервер и пр. но это не помогает. Мне помог блог следующего человека: http://hasrett.blogspot.ru/2012/04/e...ctions-to.html
Оказывается, для того чтобы забороть ошибку, нужно остановить все службы CRM, которые работают с базой:
Но... Ошибка была бы не ошибка, если бы не было причины по которой обновление упало в прошлый раз. В моем случае я столкнулся со странной пугающей ошибкой:
Что в английской версии звучит как:
Стало понятно, что проблема происходит из SQL инструкций при работе с данными, а именно в следствие идиотского американского формата отображения даты. Инструкция валится, так как в запросе путаются дни и месяцы, в результате чего мы получаем ошибку преобразования данных.
Изначально я предложил что ошибка происходит, так как базовый язык глючной организации не совпадает с базовым языком развертывания. Не смотрите на меня так: это возможно, если в системе установлен языковой пакет. В этом случае при создании новой организации можно выбрать нужный базовый язык.
Тем не менее, дальнейший поиск показал, что это не единственное несовпадение языков: http://www.denisstadler.com/dynamics...organizations/
Судя по всему, проблема может быть связана с языком по умолчанию для учетной записи (SQL Login) под которой производилась установка системы, или ее обновление. В цитированном посте приводится инструкция, которую следует выполнить чтобы все исправить, но не даются комментарии по ее использованию:
Вместо 'user' в первой инструкции нужно ввести домен\логин интересующего вас пользователя. Запрос следует выполнять против базы maser.
Однако есть и другой способ. Запустите SQL Server Management Studio, подключитесь к нужному серверу и откройте вкладку Security:
Откройте свойства нужного вам логина (он должен быть там, иначе не было бы прав на установку) и укажите нужный язык. В моем случае нужно было указать US English, так как это базовый язык развертывания:
После этого обновление прошло успешно:
Удачного обновления!
Эта информация отображается в списке организаций в CRM Deployment Manager. Раньше я встречал подобное на форуме, но поскольку не сталкивался сам, мне нечего было ответить.
Судя по статье базы данных Microsoft Dynamics CRM 2011 updates and hotfixes. Моя организация осталась в состоянии UR6. В интернете так же упоминается, что аналогичная проблема бывает с UR11 и что в процессе установки обновления можно встретить сообщение:
Цитата:
The Update Rollup XX for CRM 2011 (KBXXXXXXX) completed successfully. However, the database update failed for some organizations.
Казалось бы просто, но в результате я получил ошибку следующего вида:
На форумах советуют перезагружать IIS, SQL весь сервер и пр. но это не помогает. Мне помог блог следующего человека: http://hasrett.blogspot.ru/2012/04/e...ctions-to.html
Оказывается, для того чтобы забороть ошибку, нужно остановить все службы CRM, которые работают с базой:
- Microsoft Dynamics CRM Asynchronous Processing Service
- Microsoft Dynamics CRM Asynchronous Processing Service (maintenance)
- Microsoft Dynamics CRM Sandbox Processing Service
Но... Ошибка была бы не ошибка, если бы не было причины по которой обновление упало в прошлый раз. В моем случае я столкнулся со странной пугающей ошибкой:
Цитата:
Преобразование типа данных varchar в тип данных datetime привело к выходу значения за пределы диапазона.
Выполнение данной инструкции было прервано.
Выполнение данной инструкции было прервано.
Цитата:
The conversion of a varchar data type to a datetime data type resulted in an out-of-range value
Изначально я предложил что ошибка происходит, так как базовый язык глючной организации не совпадает с базовым языком развертывания. Не смотрите на меня так: это возможно, если в системе установлен языковой пакет. В этом случае при создании новой организации можно выбрать нужный базовый язык.
Тем не менее, дальнейший поиск показал, что это не единственное несовпадение языков: http://www.denisstadler.com/dynamics...organizations/
Судя по всему, проблема может быть связана с языком по умолчанию для учетной записи (SQL Login) под которой производилась установка системы, или ее обновление. В цитированном посте приводится инструкция, которую следует выполнить чтобы все исправить, но не даются комментарии по ее использованию:
Цитата:
--Check the Language used by the CRM user
EXEC sp_helplogins 'user'
--See the language lists
SELECT * FROM syslanguages
--Update the SQL login configuration
EXEC sp_defaultlanguage 'user', 'us_english'
EXEC sp_helplogins 'user'
--See the language lists
SELECT * FROM syslanguages
--Update the SQL login configuration
EXEC sp_defaultlanguage 'user', 'us_english'
Однако есть и другой способ. Запустите SQL Server Management Studio, подключитесь к нужному серверу и откройте вкладку Security:
Откройте свойства нужного вам логина (он должен быть там, иначе не было бы прав на установку) и укажите нужный язык. В моем случае нужно было указать US English, так как это базовый язык развертывания:
После этого обновление прошло успешно:
Удачного обновления!
Всего комментариев 1
Комментарии
-
Запись от TheMarhang размещена 07.05.2013 в 11:46