Nespracovaná výnimka: System.InvalidOperationException: Časový limit vypršal. Časový limit vypršal, ale pripojenie ešte nebolo odobraté z poolu. Môže to byť preto, že všetky prípojky bazéna sú v prevádzke a maximálna veľkosť bazéna bola dosiahnutá.
K tomu môže dôjsť preto, že všetky pripojenia bazéna sú v prevádzke a dosiahnutá je maximálna veľkosť bazéna.
Riešenie:
Prvá vec, ktorú treba urobiť, je ukončiť pripojenie hneď, ako ho použijeme. Ak spojenie nie je uzavreté, pripojenie sa uloží do poolu spojení a je známe, že GC je zničený. V tomto prípade si myslíte, že spojovací pool nedosiahol maximálnu hodnotu, ale v skutočnosti dosiahol maximálnu hodnotu, po druhé, môžeme použiť maximálnu veľkosť poolu = N v spojovacom reťazci; na dynamické rozšírenie maximálneho počtu spojení v zásobníku spojov.
Ilustrovať:
To znamená, že ak hodnota maximálnej veľkosti poolu nie je špecifikovaná v connectionString,Potom maximálna veľkosť poolu=100Ak je počet návštevníkov databázy 101, vyššie uvedená chyba sa objaví, ak po čakaní na čas nastavený SqlConnection.ConnectionTimeout (predvolene 15 sekúnd) stále nie je dostupné pripojenie.
Keď nastavíme na:
Ak je počet návštevníkov pripájajúcich sa do databázy súčasne 513, vyššie uvedená chyba nastane, ak po čakaní na čas nastavený SqlConnection.ConnectionTimeout (predvolene 15 sekúnd) stále nie je dostupné pripojenie.
|