AXForum  
Вернуться   AXForum > Блоги > CRM, SharePoint и Черная Магия
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

Добро пожаловать в мой блог! Изначально он не задумывался как блог CRM разработчика, но жизнь сама внесла нужные коррективы. Тут я публикою все свои наблюдения относительно обозначенных в заголовке систем. Если Вы найдете в нем что-то интересное для Вас, как для заказчика, то буду рад сотрудничать с Вами! В моей компетенции 100% задач по MS CRM 3.0/4.0/2011:
  • Консалтинг
  • Проектирование
  • Разработка
  • Обучение


MVP 2010, 2011
Оценить эту запись

Ошибка обновления Организации при установке UpdateRollup

Запись от Артем Enot Грунин размещена 11.04.2013 в 19:19
Теги bug, organization, sql, update

Сегодня я обнаружил, что некоторые организации на моем тестовом сервере не обновились до последней версии:

Нажмите на изображение для увеличения
Название: available.png
Просмотров: 1259
Размер:	3.2 Кб
ID:	282

Эта информация отображается в списке организаций в 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.
Как бы то ни было, переустановка пакета обновления не требуется, так как Deployment Manager позволяет обновить организации, версии которых отстали от версии развертывания. Для этого достаточно выделить в списке нужную организацию, после чего выбрать опцию Update на панели операций справа.

Казалось бы просто, но в результате я получил ошибку следующего вида:

Нажмите на изображение для увеличения
Название: connections.png
Просмотров: 1269
Размер:	11.8 Кб
ID:	283

На форумах советуют перезагружать 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
Почему-то местный установщик не умеет останавливать их самостоятельно. После остановки служб установка обновления успешно запустится:

Нажмите на изображение для увеличения
Название: ok.png
Просмотров: 1372
Размер:	10.7 Кб
ID:	285

Но... Ошибка была бы не ошибка, если бы не было причины по которой обновление упало в прошлый раз. В моем случае я столкнулся со странной пугающей ошибкой:
Цитата:
Преобразование типа данных varchar в тип данных datetime привело к выходу значения за пределы диапазона.
Выполнение данной инструкции было прервано.
Что в английской версии звучит как:
Цитата:
The conversion of a varchar data type to a datetime data type resulted in an out-of-range value
Стало понятно, что проблема происходит из SQL инструкций при работе с данными, а именно в следствие идиотского американского формата отображения даты. Инструкция валится, так как в запросе путаются дни и месяцы, в результате чего мы получаем ошибку преобразования данных.

Изначально я предложил что ошибка происходит, так как базовый язык глючной организации не совпадает с базовым языком развертывания. Не смотрите на меня так: это возможно, если в системе установлен языковой пакет. В этом случае при создании новой организации можно выбрать нужный базовый язык.

Тем не менее, дальнейший поиск показал, что это не единственное несовпадение языков: 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'
Вместо 'user' в первой инструкции нужно ввести домен\логин интересующего вас пользователя. Запрос следует выполнять против базы maser.

Однако есть и другой способ. Запустите SQL Server Management Studio, подключитесь к нужному серверу и откройте вкладку Security:

Название: sec.png
Просмотров: 470

Размер: 9.8 Кб

Откройте свойства нужного вам логина (он должен быть там, иначе не было бы прав на установку) и укажите нужный язык. В моем случае нужно было указать US English, так как это базовый язык развертывания:

Нажмите на изображение для увеличения
Название: login.png
Просмотров: 1403
Размер:	37.2 Кб
ID:	284

После этого обновление прошло успешно:

Нажмите на изображение для увеличения
Название: updated.png
Просмотров: 1363
Размер:	29.2 Кб
ID:	287

Удачного обновления!
Размещено в CRM
Просмотров 25610 Комментарии 1
Всего комментариев 1

Комментарии

  1. Старый комментарий
    Аватар для TheMarhang
    Спасибо, помогло решить несколько проблем
    Запись от TheMarhang размещена 07.05.2013 в 11:46 TheMarhang is offline
 


Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 07:15.