Kaip pašalinti pavienius ryšius "SQL Server"


Suvestinė


Kai "Microsoft SQL Server" klientas atsijungia nuo "SQL Server" serverio, jungimosi procesas turi būti išvalytas serveryje. Jei dėl kokios nors priežasties prisijungimo procesai nepašalinami, jie tampa "vieniši" arba "šešėlinis" procesais. Šie procesai gali naudoti vertingų išteklių, pvz., užraktų ir vartotojų ryšių. Pavieniai procesai paprastai atsiranda dėl netinkamo kliento programų ir su tinklu susijusių problemų uždarymo, o teisės gynimo priemonės paprastai reikalauja trikčių diagnostikos kliento programų ir koreguojamosios tinklo konfigūracijos.

Daugiau informacijos


Kai išspręsite šią problemą, atsižvelkite į šiuos dalykus:
  • "SQL Server" kaip taikomoji programa neturi ir neturėtų aktyviai zondo kliento prijungimo, kad nustatytų jo dabartinę būseną. Apatinio lygio Tarpprocesinis ryšys (IPCs), pvz., Įvardytieji vamzdžiai, IPX/SPX arba TCP/IP lizdai, atsako už kliento ryšių valdymą.
  • "IPC" paprastai turi atskirą mechanizmą kliento ryšiams valdyti. Kai kliento ryšiai tampa nereaguojančiomis tam tikrą laiką, paprastai "Windows NT Server" kompiuteris arba aptiks "Išlaikykite" zondus, arba išvalykite ryšį po to, kai jis nenaudojamas sukonfigūruotam laikui. Tačiau programa "išlaikyti-Alive" paketai nėra siunčiami pagal numatytuosius. Taikomajai programai reikia įgalinti šią funkciją jos ryšiuose.
  • Esant tam tikroms situacijoms, pvz., "Client General Protection", klientas vis tiek gali atsakyti į serverio zondus, net jei programa jau yra miręs. Šiuo atveju "Windows NT Server" kompiuteris gali išlaikyti šį kliento sujungimą neribotą laiką, kol klientas neišjungiamas.
  • Jei dėl kokios nors priežasties "Windows NT" serverio kompiuteris nėra uždarytas dėl bet kokios priežasties, "SQL Server" teisėtai prisiima šį prisijungimą, todėl jo nežymėkite.
  • Jei "Windows NT Server" kompiuteris sėkmingai uždarė jungtį, tačiau kliento procesas vis dar yra "SQL Server", kaip nurodyta sp_who, tada gali būti nurodyta problema, susijusi su SQL serverio ryšių valdymu. Šiuo atveju, Norėdami išspręsti šią problemą, turite dirbti su savo pagrindiniu palaikymo teikėju.
Jei įtariate, kad vienišojo procesai yra jūsų SQL serveryje, toliau pateikiami veiksmai, kuriuos galite atlikti, kad išspręstumėte problemą:
  1. Identifikuokite pavienį procesą, naudodami sp_who, kuris gali nurodyti, kurios taikomosios programos buvo susietos su šiais procesais naudojant pagrindinio kompiuterio vardus.
  2. Kai identifikuojate šiuos pavienius procesus, galite pasirinkti juos ignoruoti, jei jie nelaiko jokių užraktų arba naudoja daug ryšių, arba žudyti juos naudodami komandą SQL serverio naikinimo.
  3. Patikrinkite, ar taikomųjų programų vartotojai neturi jokių netinkamų procedūrų, pvz., šiltų arba šalto darbo stočių paleidimo iš naujo neišeidami iš visų taikomųjų programų. Patikrinkite, ar yra darbo vietos istorijoje nestabili, pvz., bendros saugos klaidos ir kt. Pataisyti šias netinkamas procedūras ar stabilumo problemas, jei jos egzistuoja.
  4. Patikrinkite, ar "IPC" seansas tebėra aktyvus "Windows NT" serverio kompiuteryje, kuriame veikia "SQL Server". Atsižvelgiant į naudojamą IPCs, komandos yra skirtingos. Pavyzdžiui, jei naudojate įvardytuosius vamzdžius, komanda yra "grynoji sesija" arba "grynieji failai"; Jei tai yra TCP/IP jungčių sujungimas, galite naudoti "NETSTAT", kad būtų rodomi aktyvūs TCP seansai; Jei naudojate IPX/SPX, jums gali tekti naudoti našumo monitorių, kad būtų stebimas "ryšių atidarymas", skirtas "NWLink SPX".
  5. Jei IPC seansai vis dar aktyvūs "Windows NT" serverio kompiuteryje, "SQL Server" yra visiškai normalu, kad šie prisijungimo procesai liktų. Kai "Windows" NT išvalo "IPC" seansus, bus pranešta apie "SQL Server" ir atitinkamai išvaloma prisijungimo procesai. Jums gali būti suteikta galimybė koreguoti tam tikrus "Windows NT" tinklo parametrus, kad sutrumpintumėte laiką, kurį "Windows NT" turi laukti prieš išvalant mirtinus seansus. Vėlgi, atsižvelgiant į naudojamą IPCs, parametrai yra labai skirtingi.Jei norite gauti daugiau informacijos, spustelėkite toliau esantį straipsnio numerį, kaip pakeisti šiuos registro parametrus, kad jie atitiktų toliau išvardytus straipsnius, kad peržiūrėtumėte straipsnį, kaip pakeisti šiuos registro parametrus, kad jie atitiktų toliau nurodytus "Microsoft" žinių bazės parametrus:
    120642 "Windows 2000" arba "Windows NT" TCP/IP ir "NetBT" konfigūravimo parametrai
    99745 NWLINK registro parametrų suderinimas
    • Pavadinti vamzdžiai: Įvardytieji vamzdžiai įdiegiami serverio pranešimų blokavimo (SMB) sluoksnyje ant kitų transporto protokolų, pvz., TCP/IP, NetBEUI arba NWLink IPX/SPX. Plonas sluoksnis, vadinamas NetBIOS, paprastai įdiegiamas tarp SMB ir transportavimo sluoksnio. Todėl patogus būdas reguliuoti, kiek laiko neprisitaikę įvardintų vamzdžių sesija turi laukti, kol bus uždaryta, koreguojant atitinkamo NetBIOS sluoksnio KeepAlive parametrus. TCP/IP NetBIOS sluoksnis yra NBT (NetBIOS per TCP), o parametras susijęs su SessionKeepAlive šiame registro rakte:
               KEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netbt\Parameters      
      Jei protokolas naudojamas NWlink IPX/SPX, įtraukti parametrai yra KeepAliveCount ir KeepAliveTimeout šiame registro rakte:
               HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NWNBLink\Parameters      
      Atminkite, kad kai kurie pavadinti vamzdžių diegimai per NWLink gali apeiti NetBIOS sluoksnį (DirectHosting), o tai reiškia, kad "NWNBlink" NetBIOS parametrai netaikomi.
    • TCP/IP lizdai: "Windows NT Server" periodiškai siųs "išsaugoti gyvus paketus klientams, o Klientai turėtų atsakyti. Jei dėl kokių nors priežasčių klientui nepavyksta atsakyti į tuos paketus, "Windows NT" išvalo TCP seansą po to, kai bando sukurti sukonfigūruotą kartų skaičių. Susiję parametrai yra KeepAliveInterval, KeepAliveTime ir Ticpmaxdataretranst"šiame registro rakte:
               HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters      
    • IPX/SPX: panašus į TCP/IP, "Windows NT" serveris periodiškai siunčia "laikyti gyvas" paketus ir klientams atsakyti. "Windows NT" išvalo SPX ryšius, jei jis negauna jokių atsakymų išsiuntus sukonfigūruotą "išlaikyti gyvų" paketų skaičių. Susiję parametrai yra KeepAliveCount ir KeepAliveTimeout šiame registro rakte:
               HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NWLnkSPX\Parametes      
    Atkreipkite dėmesio, kad jei jūsų IPCs parametrai "išlaikyti gyvą" yra sukonfigūruoti taip, kad "Windows NT" "IPC" seansai būtų neribotai, net jei klientai būtų visiškai išjungti. Šiuo atveju, "SQL Server" liks taip gerai, kaip ir tikėtasi, šiuos kliento procesus. Daugiau informacijos apie parametrus ieškokite "Windows NT" dokumentacijoje arba "Windows NT" išteklių rinkinyje. Jei įtariate, kad "Windows NT Server" kompiuteris neišvalys šių seansų pagal konfigūravimo parametrus, galite kreiptis į pagrindinį "Windows NT" palaikymo teikėjo žinyną.
  6. Jei IPC seansas nebėra "Windows NT" serverio kompiuteryje, bet "SQL Server" vis tiek palaiko kliento procesą, kaip parodyta sp_who, galite naudoti komandą ŽUDYTI, kad išvalytumėte procesą kaip laikiną sprendimą, ir kreipkitės į pagrindinį "SQL Server" palaikymo teikėją, kad galėtumėte gauti daugiau pagalbos.
Daugiau informacijos apie šią temą, susijusią su "SQL Server 2000", ieškokite temoje "vieniši seansai" SQL serverio knygose internete.