NHibernate + Npgsql + PostgreSQL连接池误解

时间:2012-12-11 19:04:36

标签: postgresql nhibernate connection-pooling npgsql

我对NHibernate中的池化机制有一些误解,使用Npgsql(PostgreSQL DB)。

它是如何实际运作的? 我可以在DB连接字符串中设置'pooling = true'参数。实际上将在哪一方进行池化:NHibernate还是PostgreSql?据我所知PostgreSql 9.2没有自己的池机制,在这种情况下如何汇集工作? 我还可以在DB连接字符串中指定'MinPoolSize'和'MaxPoolSize'参数。这些参数含义是什么? 实际创建新连接时(或者在“pooling = true”的情况下从池中获取)?当我打开一个新的NHibernate会话或者它不依赖于开始/结束会话?

1 个答案:

答案 0 :(得分:1)

NHibernate不管理(也不关心)连接池。这是一些ADO.Net提供商的功能。由于任何具有足够复杂性的客户端都可以实现自己的连接池,因此服务器也不一定会涉及。毕竟,这只是保持一些备用连接打开的问题。

我相信这是在Npgsql中实现的。