TFS 2010-не удается запросить определенных пользователей

мы, кажется, есть проблема с установкой из Team Foundation Server 2010, который дает ошибку, когда некоторые пользователи запрашиваются. Если мы включим их в фильтр 'AssignedTo', запрос мгновенно выдаст ошибку:

TF237161: работа сервера истекло или сервер не отвечает. Пытаться
снова.

для других пользователей это работает нормально, и TFS, назначенные этим проблемным пользователям, возвращаются в результатах рабочих запросов. Я проверил и это не похоже, чтобы быть проблемой разрешения. В прошлом году мы перешли с Team Foundation Server 2008 на TFS 2010, но люди, на которых это влияет, думают, что это происходило до этого.

есть ли у кого-нибудь идеи, с чего начать устранение неполадок это? У меня есть полный доступ к серверу и базе данных, и начал пытаться повторить запрос в SQL, чтобы увидеть, если это ошибка в базе, но не получил очень далеко, так далеко.

Если у кого есть предложения они были бы весьма признательны! Спасибо

27
задан w69rdy
05.03.2023 10:09 Количество просмотров материала 3266
Распечатать страницу

3 ответа

в конце концов мне удалось найти источник проблемы! Оказывается по неизвестным причинам, пострадавшие пользователи появлялись не раз в Constants таблица (на основе их имени, хранящегося в DisplayPart столбец) который расположен в нашем TfsDefaultCollection база данных TFS. Этот запрос выделил все записи дубликатом DisplayNames:

SELECT * FROM Tfs_DefaultCollection.dbo.Constants
WHERE DisplayPart IN
(
    SELECT DisplayPart FROM dbo.Constants 
    GROUP BY DisplayPart
    HAVING COUNT(ConstID) > 1
)
ORDER BY DisplayPart ASC

один запрос TFS использует при запросе элементов TFS получает пользователей ConstID из этой таблицы, и работает только тогда, когда их зовут уникальный:

declare @P3_1 int
select @P3_1 = ConstID from dbo.[Constants] where DisplayPart = @P3
if (@@rowcount > 1)
begin
        raiserror(600174, 16, 1) with seterror, nowait
        return
end
set @P3_1 = isnull(@P3_1,-2147483648);

так как они появлялись несколько раз, запрос завершался ошибкой. Таким образом, чтобы решить эту проблему, мы переименовали повторяющиеся константы с последней ConstID к чему-то другому (мы приложили ? до самого конца) и вуаля! Опять сработало.

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

2
отвечен w69rdy 2023-03-06 17:57

Try эти инструкции для получения подробной информации о трассировке на сервере TFS.

1
отвечен Ryan Riehle 2023-03-06 20:14

обратите внимание, что вы никогда не должны напрямую управлять своими данными, как это - это поставит вашу систему в состояние, которое очень трудно для группы продуктов TFS для поддержки. Повторяющиеся отображаемые имена фактически ожидаются в некоторых случаях-как правило, когда два пользователя в разных доменах были синхронизированы в TFS с общим отображаемым именем (например, DOMAIN1\user и DOMAIN2\user оба имеют отображаемое имя "пользователь").

запрос отслеживания рабочего элемента, указанный выше, оптимизирован для данного случая где находятся не дублировать отображаемые имена в системе. Обычно должно произойти так, что ошибка, вызванная включенным фрагментом кода SQL, создаст на сервере строго типизированное исключение. Это исключение перехватывается, а затем создается менее оптимальный пакет SQL для обработки повторяющегося варианта отображаемого имени. Очевидно, что это не отличный шаблон, и мы планируем очистить его в будущем выпуске. На данный момент, однако, это то, как все работает здесь.

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

0
отвечен Aaron Hallberg 2023-03-06 22:31

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх