ID Artikel: 137983 - Kajian Terakhir: 14 September 2011 - Revisi: 2.0

Bagaimana memecahkan masalah koneksi yatim piatu di SQL Server

Tips SistemThis article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.
Perbesar semua | Perkecil semua

RINGKASAN

Ketika klien Microsoft SQL Server terputus dari server SQL Server, koneksi proses harus dibersihkan di sisi server. Jika sambungan proses tidak dibersihkan alasan apapun, mereka menjadi "yatim" atau "hantu" proses. Proses ini dapat menggunakan sumber daya berharga seperti kunci dan pengguna koneksi. Proses yatim biasanya disebabkan oleh pantas menutup aplikasi-aplikasi client dan masalah yang berhubungan dengan jaringan, dan obat biasanya memerlukan pemecahan masalah klien aplikasi dan denda- tuning konfigurasi jaringan.

INFORMASI LEBIH LANJUT

Ketika Anda memecahkan masalah ini, ingatlah berikut:
  • SQL Server sebagai aplikasi tidak dan seharusnya tidak secara proaktif menyelidiki sambungan klien untuk menentukan status saat ini. Tingkat yang lebih rendah Komunikasi Inter-proses (IPCs), seperti bernama pipa, IPX/SPX atau Soket TCP/IP, bertanggung jawab untuk mengelola hubungan klien.
  • IPC biasanya memiliki mekanisme sendiri untuk mengelola hubungan klien. Ketika klien koneksi menjadi non-responsif untuk jumlah tertentu waktu, biasanya komputer Windows NT Server baik akan mendeteksi ini dengan mengirimkan "menjaga" probe, atau membersihkan connection setelah itu siaga untuk jumlah waktu yang dikonfigurasi. Namun, "tetap-menyala" paket yang tidak dikirim secara default oleh aplikasi. Aplikasi ini perlu untuk mengaktifkan fitur ini pada koneksi yang.
  • Di bawah situasi tertentu seperti klien GPF, klien mungkin masih menanggapi server probe bahkan jika aplikasi sudah mati. Dalam kasus ini, komputer Windows NT Server dapat menyimpan ini klien sambungan tanpa batas waktu, selama klien tidak menutup.
  • Jika komputer Windows NT Server menutup koneksi mati untuk alasan apapun, SQL Server berhak mengasumsikan sambungan ini adalah masih aktif, dan karena itu tidak membersihkan itu.
  • Jika komputer Windows NT Server telah berhasil menutup sambungan, tetapi proses klien masih ada pada Server SQL sebagai ditunjukkan oleh sp_who, kemudian itu mungkin menunjukkan masalah dengan SQL Server sambungan manajemen. Dalam kasus ini, Anda harus bekerja dengan dasar Anda dukungan penyedia untuk mengatasi masalah ini.
Jika Anda mencurigai yatim proses yang ada pada Server SQL berikut adalah langkah-langkah yang dapat Anda ambil untuk memecahkan masalah:
  1. Mengidentifikasi proses yatim piatu yang menggunakan sp_who, yang dapat memberitahu Anda yang aplikasi yang terkait dengan proses ini melalui host nama.
  2. Setelah Anda mengidentifikasi proses ini yatim piatu, Anda dapat memilih baik mengabaikan mereka jika mereka tidak memegang kunci apapun atau menggunakan banyak koneksi, atau membunuh mereka menggunakan perintah SQL Server membunuh.
  3. Periksa dengan pengguna aplikasi untuk prosedur pantas penutupan aplikasi, seperti hangat atau dingin restart workstation tanpa keluar aplikasi pertama. Periksa apakah ada sejarah workstation menjadi tidak stabil, seperti GPF, dan sebagainya. Benar mereka pantas prosedur atau masalah stabilitas jika mereka ada.
  4. Periksa apakah sesi IPC masih aktif pada Windows NT Server komputer di mana SQL Server berjalan. Tergantung pada IPCs yang menggunakan, perintah berbeda. Sebagai contoh, jika Anda menggunakan bernama pipa, perintah adalah "Sesi bersih" atau "NET file"; Jika TCP/IP soket sambungan, Anda dapat menggunakan "NETSTAT" untuk menampilkan aktif TCP sesi; dalam kasus IPX/SPX, Anda mungkin harus menggunakan kinerja Memantau untuk memantau "hubungan terbuka" untuk "NWLink SPX."
  5. Jika sesi IPC masih aktif pada komputer Windows NT Server, itu hal yang normal untuk SQL Server untuk menjaga sambungan tersebut proses. Ketika Windows NT membersihkan IPC sesi, SQL Server akan diberitahu dan membersihkan proses sambungan sesuai. Anda dapat dapat menyesuaikan parameter jaringan Windows NT tertentu untuk mempersingkat jangka waktu bahwa Windows NT harus menunggu sebelum membersihkan orang-orang mati sesi.

    Sekali lagi, tergantung pada IPCs Anda menggunakan, parameter yang terlibat adalah sangat berbeda.Untuk informasi lebih lanjut, klik nomor artikel berikut cara mengubah pengaturan registri ini agar sesuai dengan yang disebutkan di bawah ini untuk melihat artikel bagaimana memodifikasi pengaturan registri ini agar sesuai dengan yang disebutkan di bawah ini pada Basis Pengetahuan Microsoft:
    120642  (http://support.microsoft.com/kb/120642/ ) Parameter konfigurasi TCP/IP dan NetBT untuk Windows 2000 atau Windows NT
    99745  (http://support.microsoft.com/kb/99745/ ) NWLINK registri parameter tuning
    • Named Pipe: Named Pipe dilaksanakan dalam Server Message Block (SMB) lapisan di atas protokol transportasi lain seperti TCP/IP, NetBEUI, atau NWLink IPX/SPX. Lapisan tipis yang disebut NetBIOS adalah biasanya diimplementasikan antara SMB dan transport layer. Oleh karena itu, cara menyesuaikan berapa lama non-responsif bernama pipa sesi harus menunggu sebelum ditutup adalah melalui menyesuaikan Penyesuaian KeepAlive parameter dari lapisan NetBIOS yang relevan. Untuk TCP/IP, NetBIOS lapisan terlibat adalah NetBIOS over TCP/IP (NetBIOS over TCP), dan parameter terlibat adalah SessionKeepAlive dalam kunci registri berikut:
               KEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netbt\Parameters
           
      								
      Jika protokol yang digunakan adalah NWlink IPX/SPX, parameter yang terlibat adalah KeepAliveCount dan KeepAliveTimeout pada di kunci registri berikut:
               HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NWNBLink\Parameters
           
      								
      Harap dicatat bahwa beberapa implementasi bernama pipa atas NWLink mungkin memotong lapisan NetBIOS (DirectHosting), yang berarti di atas NWNBlink NetBIOS parameter tidak berlaku.
    • TCP/IP soket: Windows NT Server akan secara berkala mengirimkan "tetap hidup paket-paket untuk klien, dan klien diharapkan untuk menjawab. Jika untuk setiap alasan klien gagal untuk menanggapi paket tersebut, Windows NT membersihkan sesi TCP setelah mencoba untuk sejumlah dikonfigurasi kali. Parameter yang terlibat adalah KeepAliveInterval, KeepAliveTime, dan TcpMaxDataRetransmissions dalam kunci registri berikut:
               HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
           
      								
    • IPX/SPX: Mirip TCP/IP, Windows NT Server secara berkala mengirimkan "menjaga" paket dan klien menanggapi. Windows NT membersihkan SPX koneksi jika gagal untuk menerima respon setelah mengirim dikonfigurasi jumlah "menjaga" paket. Parameter yang terlibat KeepAliveCount dan KeepAliveTimeout pada registri berikut kunci:
               HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NWLnkSPX\Parametes
           
      								
    Perlu diketahui bahwa jika parameter "tetap hidup" untuk IPCs Anda dikonfigurasi untuk tidak pernah timeout, Windows NT akan menjaga IPC sesi tanpa batas waktu, bahkan jika klien benar-benar mematikan. Dalam hal ini kasus, SQL Server akan membuat proses klien ini tanpa batas waktu sebagai Yah, yang diharapkan.

    Untuk informasi lebih lanjut tentang parameter, silakan berkonsultasi dengan Anda Windows NT dokumentasi atau Windows NT Resource Kit. Jika Anda mencurigai Anda Windows NT Server komputer tidak jelas sampai sesi-sesi menurut parameter konfigurasi, Anda dapat menghubungi Anda primer Windows NT dukungan Anda untuk bantuan.
  6. Jika sesi IPC tidak ada lagi pada komputer Windows NT Server, tapi SQL Server masih terus proses klien seperti yang ditunjukkan oleh sp_who, Anda dapat Gunakan perintah KILL untuk membersihkan proses sebagai solusi sementara, dan menghubungi penyedia dukungan SQL Server utama untuk lebih lanjut bantuan.
Untuk informasi tambahan mengenai hal ini yang berhubungan dengan SQL Server 2000, lihat topik "Sesi yatim piatu" di SQL Server buku Online.

Berlaku bagi:
  • Microsoft SQL Server 4.21a Standard Edition
  • Microsoft SQL Server 6.0 Standard Edition
  • Microsoft SQL Server 6.5 Standard Edition
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Kata kunci: 
kbhowto kbinfo kbusage kbmt KB137983 KbMtid
Penerjemahan MesinPenerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:137983  (http://support.microsoft.com/kb/137983/en-us/ )