Neupravená výjimka: System.InvalidOperationException: Vypršel časový limit. Časový limit vypršel, ale připojení zatím nebylo z poolu odebráno. To může být proto, že všechny přípojky bazénů jsou v provozu a maximální velikost bazénu byla dosažena.
To může nastat proto, že všechny spoje bazénů jsou v provozu a maximální velikost bazénu je dosažena.
Řešení:
První věcí, kterou musíme udělat, je ukončit připojení hned, jak ho použijeme. Pokud spojení není uzavřeno, je uloženo do poolu a je známo, že GC je zničen. V tomto případě si myslíte, že spojovací pool nedosáhl maximální hodnoty, ale ve skutečnosti dosáhl maximální hodnoty, za druhé můžeme použít Max Pool Size = N v connection stringu; pro dynamické rozšíření maximálního počtu spojení v poolu spojů.
Ilustrovat:
To znamená, že pokud není v connectionString specifikována hodnota maximální velikosti poolu,Pak maximální velikost poolu=100Pokud je počet návštěvníků databáze 101, výše uvedená chyba se objeví, pokud po čekání na čas nastavený SqlConnection.ConnectionTimeout (výchozí 15 sekund) stále není dostupné připojení.
Když nastavíme na:
Pokud je počet návštěvníků připojujících se k databázi současně 513, výše uvedená chyba nastane, pokud po čekání na čas nastavený SqlConnection.ConnectionTimeout (výchozí 15 sekund) stále není dostupné připojení.
|