我已将 NHibernate 配置为使用 Fluent NNibernate 连接到 PostgreSQL 数据库。
我有一个工作类,它将 ISessionFactory 作为构造函数参数并使用队列中的消息。对于每条消息,工作进程调用 ISessionFactory.OpenSession() 并进行一些数据库处理。
当我添加更多工作进程时,系统的性能保持不变,这很奇怪。经过更多调查后,我意识到所有工作进程都使用单个数据库连接。例如,我将添加 8 个工作进程,但在数据库上我只能看到一个数据库连接。
我的理解是 ISessionFactory.OpenSession() 将打开一个新的数据库连接,除非连接池已满。
我的理解是错误的,还是 Postgres NHibernate 驱动程序的问题。