2012-12-11 61 views
0

我對NHibernate的Npgsql(PostgreSQL DB)中的池機制存在一些誤解。NHibernate + Npgsql + PostgreSQL連接池的誤解

它是如何工作的? 我可以在數據庫連接字符串中設置'pooling = true'參數。實際上將在哪一側進行池化:NHibernate還是PostgreSql?據我所知PostgreSql 9.2沒有自己的池機制,在這種情況下池將如何工作? 我也可以在DB連接字符串中指定'MinPoolSize'和'MaxPoolSize'參數。這些參數是什麼意思? 實際上正在創建新連接(或者在pooling = true的情況下從池中獲取)?當我打開一個新的NHibernate會話或它不依賴於打開/關閉會話?

回答

1

NHibernate不管理(也不真正關心)連接池。這是一些ADO.Net提供商的功能。服務器也不一定會涉及,因爲任何具有足夠複雜性的客戶端都可以實現自己的連接池。畢竟,這只是保持打開許多備用連接的問題。

我相信這是在Npgsql中實現的東西。