Hibernate SessionFactory连接如何与pgbouncer池一起工作?

Hibernate SessionFactory连接如何与pgbouncer池一起工作?,hibernate,connection-pooling,postgresql-9.4,sessionfactory,pgbouncer,Hibernate,Connection Pooling,Postgresql 9.4,Sessionfactory,Pgbouncer,我们有一个用java开发的大型模拟,该模拟的每次运行都是在网格中的一个节点上运行的jar。通常约有3000个作业跨越几个网格。jar中的类使用Hibernate连接到数据库并将数据写入pg数据库,其中每个作业都是表中的一行。因此,实际上每个正在运行的作业都会插入并更新自己的行 但是由于每个jar本质上是独立的,所以每个运行的jar都会创建一个SessionFactory来完成工作,我们很快就超过了数据库连接的最大数量。我实际上没有意识到SessionFactory与数据库建立了连接。我只认为它打

我们有一个用java开发的大型模拟,该模拟的每次运行都是在网格中的一个节点上运行的jar。通常约有3000个作业跨越几个网格。jar中的类使用Hibernate连接到数据库并将数据写入pg数据库,其中每个作业都是表中的一行。因此,实际上每个正在运行的作业都会插入并更新自己的行

但是由于每个jar本质上是独立的,所以每个运行的jar都会创建一个SessionFactory来完成工作,我们很快就超过了数据库连接的最大数量。我实际上没有意识到SessionFactory与数据库建立了连接。我只认为它打开了与数据库的连接,用于处理事务。因此,仅打开会话工厂连接就限制了可以记录其工作的作业数量

我们查看了pgbouncer,根据文档,连接似乎只在会话或事务期间发布。这是否包括SessionFactory本身建立的连接?由于SessionFactory的存在,每个作业(可能持续数小时到数天)都会保持与数据库的开放连接,并且所有其他超过max_连接的作业都会被阻止

谢谢你的帮助