为什么运行我的应用程序时会创建这么多"postgres.exe"?

jav*_*r71 14 postgresql

我有一个J2EE应用程序,部署在Windows(Vista 32位)平台的JBoss6应用服务器中.我的数据库是" PostgreSQL 9.0.4 ",我使用的是JDBC驱动程序:"postgresql-9.0-801.jdbc4.jar".

在我的ds.xml文件中,我定义了max-pool-size = 75和min-pool-size = 40.我正在使用JPA/Hibernate以及使用javax.sql.DataSource.

在Windows"任务管理器"中,我发现当PostgreSQL服务器启动时,它会创建6个"postgres.exe"进程.现在,当我在JBoss中部署/启动J2EE应用程序时,我发现总共有66个 "postgres.exe"进程.因此,这意味着由于我的应用程序启动而产生(或启动)了另外60个postgres进程.

如果我将max-pool-size更改为40,那么我注意到我总共有46个postgres.exe进程.在这两种情况下,没有.当我停止我的J2EE应用程序时,postgres进程的结果降到了6.

所以我的问题,这是正常的吗?由于'连接池'(由Hibernate使用)产生/启动了那些额外的进程吗?

Fra*_*ens 23

是的,这很正常.从手册:

PostgreSQL服务器可以处理来自客户端的多个并发连接.为实现这一点,它为每个连接启动("分叉")一个新进程.从那时起,客户端和新服务器进程在没有原始postgres进程干预的情况下进行通信.因此,主服务器进程始终在运行,等待客户端连接,而客户端和关联的服务器进程来来去去.

  • 它似乎没有关闭进程。 (2认同)
  • 有人发现如何关闭“未使用”的进程吗?它只会增加,不会关闭 (2认同)