Neapdorota išimtis: System.InvalidOperationException: baigėsi skirtasis laikas. Skirtasis laikas baigėsi, bet ryšys dar nebuvo paimtas iš telkinio. Taip gali būti dėl to, kad naudojami visi telkinio ryšiai ir pasiektas maksimalus telkinio dydis.
Taip gali nutikti dėl to, kad naudojami visi telkinio ryšiai ir pasiektas maksimalus telkinio dydis.
Sprendimas:
Pirmas dalykas, kurį reikia padaryti, yra uždaryti ryšį, kai tik jį naudojame. Jei ryšys neuždarytas, ryšys išsaugomas ryšių telkinyje ir žinoma, kad GC sunaikinamas. Tokiu atveju manote, kad ryšio telkinys nepasiekė maksimalios vertės, bet iš tikrųjų ryšio telkinys pasiekė maksimalią vertę, antra, ryšio eilutėje galime naudoti maksimalų telkinio dydį = N; , kad dinamiškai išplėstumėte maksimalų ryšių telkinio ryšių skaičių.
Iliustruoti:
Tai yra, jei maksimalaus telkinio dydžio reikšmė nenurodyta connectionString,Tada maksimalus baseino dydis = 100Jei duomenų bazės lankytojų skaičius yra 101, aukščiau pateikta klaida pasirodys, jei laukiant SqlConnection.ConnectionTimeout nustatyto laiko vis dar nėra ryšio (numatytasis yra 15 sekundžių).
Kai nustatome:
Jei lankytojų, prisijungiančių prie duomenų bazės vienu metu, skaičius yra 513, aukščiau pateikta klaida įvyks, jei laukiant SqlConnection.ConnectionTimeout nustatyto laiko vis dar nėra ryšio (numatytasis yra 15 sekundžių).
|