TFS 2010 - Tidak dapat meminta pengguna tertentu

0

Kami tampaknya memiliki masalah tanpa instalasi Team Foundation Server 2010 yang memberikan kesalahan ketika pengguna tertentu ditanyai. Jika kami memasukkannya ke dalam filter 'Ditugaskan', permintaan membuat kesalahan dengan:

TF237161: Waktu operasi server habis atau server tidak merespons. Mencoba   lagi.

Untuk pengguna lain ini berfungsi dengan baik, dan TFS yang ditugaskan untuk pengguna bermasalah ini dikembalikan dalam hasil kueri yang berfungsi. Saya telah memeriksa dan tampaknya bukan masalah izin. Kami telah bermigrasi dari Team Foundation Server 2008 ke TFS 2010 tahun lalu, tetapi orang-orang yang terpengaruh berpikir hal itu terjadi sebelum ini.

Adakah yang punya ide tentang di mana memulai pemecahan masalah ini? Saya memiliki akses penuh ke server dan basis data, dan sudah mulai mencoba mereplikasi kueri dalam SQL untuk melihat apakah ada kesalahan dalam basis data, tetapi sejauh ini belum terlalu jauh.

Jika ada yang punya saran, mereka akan sangat dihargai! Terima kasih

w69rdy
sumber

Jawaban:

2

Saya akhirnya berhasil menemukan sumber masalahnya! Ternyata theat untuk alasan yang tidak diketahui, pengguna yang terpengaruh muncul lebih dari sekali di Internet Constants tabel (berdasarkan nama mereka yang disimpan di DisplayPart kolom) yang berada di TfsDefaultCollection Basis data TFS. Kueri ini menyoroti semua rekaman dengan duplikat DisplayName :

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

Satu kueri yang digunakan TFS saat meminta item TFS mengambil pengguna ConstID dari tabel ini, dan hanya berfungsi jika namanya unik:

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);

Jadi karena mereka muncul lebih dari sekali, kueri gagal dengan kesalahan. Maka untuk menyelesaikannya, kami mengganti konstanta duplikat dengan yang terbaru ConstID untuk sesuatu yang berbeda (Kami menambahkan? Sampai akhir) , dan hai presto! Berhasil lagi.

Jika saya mengetahui mengapa ini terjadi, saya akan memposting pembaruan. Sementara itu saya harap ini bermanfaat bagi siapa pun yang mengalami masalah menjengkelkan yang sama

w69rdy
sumber
1

Mencoba instruksi ini untuk mendapatkan informasi penelusuran terperinci tentang apa yang terjadi di server TFS Anda.

Ryan Riehle
sumber
Sementara ini secara teoritis dapat menjawab pertanyaan, itu akan lebih disukai untuk memasukkan bagian-bagian penting dari jawaban di sini, dan menyediakan tautan untuk referensi.
slhck
0

Perhatikan bahwa Anda seharusnya tidak pernah secara langsung memanipulasi data Anda seperti ini - itu akan membuat sistem Anda dalam keadaan yang sangat sulit bagi kelompok produk TFS untuk didukung. Nama tampilan duplikat sebenarnya diharapkan dalam kasus tertentu - biasanya ketika dua pengguna di domain yang berbeda telah disinkronkan ke TFS dengan nama tampilan bersama (mis. DOMAIN1 \ pengguna dan DOMAIN2 \ pengguna keduanya memiliki nama tampilan 'pengguna').

Kueri Pelacakan Item Pekerjaan yang Anda catat di atas dioptimalkan untuk kasus di mana ada tidak nama tampilan duplikat dalam sistem. Biasanya yang seharusnya terjadi adalah bahwa kesalahan yang dimunculkan oleh potongan SQL yang Anda sertakan akan menghasilkan pengecualian yang sangat diketik di server. Pengecualian ini ditangkap dan kemudian batch SQL yang kurang optimal dihasilkan untuk menangani kasus nama tampilan duplikat. Ini bukan pola yang hebat, jelas, dan kami berencana untuk membersihkannya di rilis mendatang. Untuk saat ini, bagaimanapun, itulah cara kerja di sini.

Dengan semua pengaturan itu, akar penyebab masalah Anda sangat mungkin adalah bahwa contoh SQL Anda tidak memiliki pesan kesalahan yang diinstal dengan benar. Ketika hal ini terjadi, kesalahan yang muncul tidak akan dikonversi dengan benar ke pengecualian yang diketik dengan kuat yang diharapkan oleh kode server, dan batch SQL kedua yang kurang optimal tidak akan pernah dihasilkan, yang mengarah ke kegagalan yang Anda lihat ... Jika Anda memperbaiki pesan kesalahan Anda menginstal pada contoh SQL Anda, masalah ini harus diselesaikan, dan permintaan Anda harus kembali lagi hasil yang sesuai untuk pengguna dengan nama tampilan yang ambigu.

Aaron Hallberg
sumber
Ok terima kasih atas penjelasannya! Saya akan melihat ini. Jadi Anda mengatakan bahwa dengan menginstal pesan kesalahan saja akan memperbaiki masalah? Atau akankah hanya memaparkan pesan kesalahan untuk penyebab yang mendasarinya?
w69rdy