2012-04-05 14 views
11

Background: Sto trasferendo la mia applicazione da mssql a npgsql v2.0.11.92. Dopo alcuni minuti o ore di esecuzione della mia applicazione, ottengo un sistema .Exception: Timeout mentre si ottiene una connessione dal pool.Npgsql: Timeout durante il collegamento dal pool

Sto usando lib versione 2.0.11.92 in ambiente x86 su piattaforma x64. Tutte le connessioni sono chiuse e disposte al blocco finale al più tardi, ma dopo un po ', ricevo l'errore. Quindi, dovrebbe essere un problema della libreria Npgsql.

Nella mia applicazione, ci sono molte query che si verificano in background ogni pochi secondi, ma la maggior parte delle volte, sono solo in esecuzione sequenziale, non in paralell.

mia stringa di connessione utilizzata è: SERVER = mydbserver; MINPOOLSIZE = 3; MaxPoolSize = 15; ConnectionLifeTime = 7; DATABASE = Test DB; UID = user; PWD = passare

sto cercando di diagnosticare perdite connessioni postgres in npgsql.

FYI: La libreria Npgsql aveva già riscontrato un problema che è stato risolto nell'ultima versione 2.0.11.92. Ma ancora ci sono alcuni problemi, suppongo.

Qualcuno ha avuto problemi simili con la versione corrente della libreria (npgsql v2.0.11.92)?

+0

Questo problema esiste ancora? Io uso la versione 2.0.14.3 e ho ricevuto anche questo errore. – IvanP

+0

ho lo stesso problema: nel mio caso risulta che non stavo chiudendo la connessione in tutti i percorsi di codice. – docesam

risposta

10

Ho avuto lo stesso problema. La soluzione è disattivare il pool di connessioni. A tale scopo, nella stringa di connessione prima di connettersi al database dal C# app

nella stringa di connessione:

Pooling=false; 
+6

La disattivazione del pool di connessioni non è esattamente la soluzione. Chiamiamolo soluzione. – IvanP

+0

Il suo spegnimento ha permesso che funzionasse, ma è necessario capire perché il pool di connessioni non funziona. – Cody

+0

Quindi perché la soluzione ha funzionato? –

Problemi correlati