Nhibernate 在多线程应用程序中,所有线程都获得到数据库的连接。这是预期的还是某些问题?

Nhibernate 在多线程应用程序中,所有线程都获得到数据库的连接。这是预期的还是某些问题?,nhibernate,database-connection,nservicebus,Nhibernate,Database Connection,Nservicebus,我在应用程序中使用NService和NHibernate。对于NServicebus,我们在配置文件中定义了线程数。根据工作线程的数量,它在多线程环境中工作。 有时,当所有线程都在使用并且线程获得了与数据库的连接时,它不允许应用程序创建与数据库的连接。当达到最大池大小时,工作日志中将出现异常。 所有线程根据连接超时释放连接 我的问题是,是否所有线程都应该在使用后释放连接,而不是将它们置于非活动状态 或 它工作得很好。 如果它运行良好,我可以通过什么方式增加我的工人。 因为增加它会给我最大池大小的

我在应用程序中使用NService和NHibernate。对于NServicebus,我们在配置文件中定义了线程数。根据工作线程的数量,它在多线程环境中工作。 有时,当所有线程都在使用并且线程获得了与数据库的连接时,它不允许应用程序创建与数据库的连接。当达到最大池大小时,工作日志中将出现异常。 所有线程根据连接超时释放连接

我的问题是,是否所有线程都应该在使用后释放连接,而不是将它们置于非活动状态 或 它工作得很好。 如果它运行良好,我可以通过什么方式增加我的工人。
因为增加它会给我最大池大小的错误

我认为您应该将允许的线程数设置为不超过数据库连接的最大池大小。

谢谢您的回答。但是有时候,即使线程更少,与数据库的连接数量更多。这可能是因为应用程序未释放数据库连接。然后,您的问题是“应用程序未释放数据库连接”,您需要解决此问题。是的,可能是因为此原因。但由于我使用的是Spring.Data.Nhibernate12,通过我的应用程序,我不会创建和释放数据库连接。NHibernate的会话工厂会为我的应用程序执行此操作。因此,它可能会解决NHibernate的问题或我的应用程序配置中的任何问题。因为之前我怀疑的是,为此,我提出了一个应用程序不释放数据库连接的问题,我也发布了我的配置文件。在我的上一个问题中,我也发布了我的配置文件。是否有其他应用程序连接到您的数据库?不,只有我的工作线程(约50个工作线程)连接到它。没有其他应用程序