Käsittelemätön poikkeus: System.InvalidOperationException: Aikakatkaisu on umpeutunut. Aikalisä on umpeutunut, mutta yhteyttä ei ole vielä otettu uima-altaasta. Tämä voi johtua siitä, että kaikki allasliitännät ovat käytössä ja maksimikoko on saavutettu.
Tämä voi tapahtua, koska kaikki altaan liitännät ovat käytössä ja suurin altaan koko saavutetaan.
Ratkaisu:
Ensimmäinen asia, joka tehdään, on sulkea yhteys heti, kun käytämme sitä. Jos yhteyttä ei suljeta, yhteys tallennetaan yhteyspooliin ja GC tunnetaan tuhoutuneen. Tässä tapauksessa luulet, että yhteyspooli ei ole saavuttanut maksimiarvoa, mutta todellisuudessa yhteyspooli on saavuttanut maksimiarvon, toiseksi voimme käyttää Max Pool Size = N yhteysjonossa; laajentaakseen dynaamisesti yhteyksien maksimimäärää yhteyspoolissa.
Havainnollistaa:
Eli jos maksimipoolin koon arvoa ei ole määritelty connectionStringissä,Silloin maksimipoolin koko=100Jos tietokannan kävijöiden määrä on 101, yllä oleva virhe ilmestyy, jos yhteyttä ei vieläkään ole saatavilla SqlConnection.ConnectionTimeoutin asettaman ajan odottamisen jälkeen (oletusaika on 15 sekuntia).
Kun siirryimme:
Jos samanaikaisesti tietokantaan yhdistävien kävijöiden määrä on 513, yllä oleva virhe ilmenee, jos yhteyttä ei ole saatavilla SqlConnection.ConnectionTimeoutin asettaman ajan odottamisen jälkeen (oletus on 15 sekuntia).
|