У меня настроен NHibernate с подключением Fluent NNibernate к базе данных PostgreSQL.
У меня есть рабочий класс, который принимает ISessionFactory в качестве параметра конструктора и принимает сообщения из очереди. Для каждого сообщения рабочий процесс вызывает ISessionFactory.OpenSession () и выполняет некоторую обработку базы данных.
Когда я добавляю больше рабочих процессов, производительность системы остается такой же, что странно.
После еще одного исследования я понял, что все рабочие процессы используют одно соединение с базой данных. Например, я бы добавил 8 рабочих процессов, но в базе данных я вижу только одно соединение с базой данных.
Насколько я понимаю, ISessionFactory.OpenSession () откроет новое соединение с базой данных, если пул соединений не заполнен.
Так что мое понимание неверно или это проблема с драйвером Postgres NHibernate.