Как бороться с последствиями отказа от перехода на зимнее время в TFS
02/11/2011 4 комментария
В своём посте Президент Медведев принял посильное участие в тестировании Team Foundation Server 2010 я описал, с какими проблемами мы столкнулись в связи с отказом от перехода на зимнее время в России.
К сожалению, Microsoft пока ещё не выпустил общедоступное исправление, а я продолжаю получать много вопросов о том, как решить данную проблему. Для остронуждающихся – решил поделиться знаниями.
ВНИМАНИЕ! Делайте нижеперечисленные шаги только в том случае, если Вы действительно не можете ждать выпуска исправления или ответа из службы технической поддержки. Обязательно сделайте backup всех баз данных, перед тем, как что-то модифицировать!
Помните, что Вы это делаете на свой страх и риск и Microsoft может Вам отаказать в дальнейшей поддержке.
Для начала, убдедимся в том, что у Вас действительно проблема с временной зоной. Для этого нужно выполнить SQL скрипт. Вставьте правильное имя базы данных, в котором находится Ваша коллекция проектов.
select d.JobId, d.JobName, d.ExtensionName, s.TimeZoneId, s.ScheduledTimeDelta
from [<your_project_collection_db_name>]..tbl_JobDefinition d
join [<your_project_collection_db_name>]..tbl_JobSchedule s
on s.JobId = d.JobId
where s.TimezoneID = 'Russian Standard Time'
Если в результате этого запроса Вам вернули не 0 результатов, то решаем проблему дальше. Нужно поменять временную зону на, например, UTC, и тогда “застрявшие” задания продолжат свою работу. Для начала нужно остановить TFS Job Agent Service. Теперь, нужно выполнить скрипты:
-- backup data to a new table.
select *
into [<your_project_collection_db_name>]..tbl_JobSchedule_prior_to_fix
from [<your_project_collection_db_name>]..tbl_JobSchedule
-- Replace RST with UTC
update [<your_project_collection_db_name>]..tbl_JobSchedule
set TimeZoneId = 'UTC',
ScheduledTimeDelta = 0
where TimezoneID = 'Russian Standard Time'
-- backup data to a new table.
select *
into Tfs_Configuration..tbl_JobSchedule_prior_to_fix
from Tfs_Configuration..tbl_JobSchedule
-- Replace RST with UTC
update Tfs_Configuration..tbl_JobSchedule
set TimeZoneId = 'UTC',
ScheduledTimeDelta = 0
where TimezoneID = 'Russian Standard Time'
Спасибо за описание решения! Помогло быстро решить проблему, теперь алерты и Areas & Iterations работают как надо.
Хочется отметить, что hotfix уже всем доступен — лучше, всё же его поставить.
А не подскажете где хотфикс взять?
Описание проблемы http://support.microsoft.com/kb/2633762
Сам фикс: http://support.microsoft.com/kb/2643415