Neobdelana izjema: System.InvalidOperationException: Časovna omejitev je potekla. Časovna omejitev je potekla, vendar povezava še ni bila odvzeta iz bazena. To je morda zato, ker so vse povezave bazenov v uporabi in je bila dosežena največja velikost bazena.
To se lahko zgodi, ker so vse povezave bazena v uporabi in je dosežena največja velikost bazena.
Rešitev:
Prva stvar, ki jo moramo narediti, je, da povezavo zapremo takoj, ko jo uporabimo. Če povezava ni zaprta, se povezava shrani v povezovalni bazen in je znano, da je GC uničena. V tem primeru mislite, da povezovalni bazen ni dosegel največje vrednosti, vendar je povezovalni bazen dejansko dosegel največjo vrednost, drugič, lahko uporabimo največjo velikost bazena = N v povezovalnem nizu; za dinamično širjenje največjega števila povezav v povezovalnem bazenu.
Ponazoritev:
Torej, če vrednost največje velikosti bazena ni določena v connectionString,Potem je največja velikost bazena=100Če je število obiskovalcev baze podatkov 101, se bo zgornja napaka pojavila, če povezava še vedno ni na voljo po čakanju na čas, ki ga je nastavil SqlConnection.ConnectionTimeout (privzeto 15 sekund).
Ko nastavimo na:
Če je število obiskovalcev, ki se hkrati povežejo v bazo, 513, se bo zgornja napaka pojavila, če po čakanju na čas, ki ga je nastavil SqlConnection.ConnectionTimeout (privzeto 15 sekund), še vedno ni razpoložljive povezave.
|