我有一个 J2EE 应用程序,部署在 JBoss 应用程序服务器中Windows(Vista 32 位)平台。我的数据库是“PostgreSQL 9.0.4”并且我正在使用 JDBC 驱动程序:“postgresql-9.0-801.jdbc4.jar”。
在我的 ds.xml 文件中,我定义了最大池大小 = 75最小池大小 = 40。
我正在使用 JPA/Hibernate 以及 javax.sql.DataSource。
在Windows“任务管理器”中,我发现当PostgreSQL服务器启动时它会创建6 个“postgres.exe”进程。
现在,当我在 JBoss 中部署/启动 J2EE 应用程序时,我发现共 66 个“postgres.exe”进程。
所以这意味着另一个60 个 postgres 进程由于我的应用程序启动而产生(或启动)。
如果我改变最大池大小 to be 40然后我注意到我总共有46 个 postgres.exe 进程。
在这两种情况下,没有。当我停止 J2EE 应用程序时,postgres 进程数减少到 6 个。
所以我的问题是,这正常吗?
这些额外的进程是因为“连接池”(由 Hibernate 使用)而产生/启动的吗?
是的,这是正常的。来自manual http://www.postgresql.org/docs/current/interactive/tutorial-arch.html:
PostgreSQL 服务器可以处理多个并发连接
客户。为了实现这一点,它启动(“forks”)每个人都有一个新的流程
联系。从那时起,客户端和新的服务器进程
无需原始 postgres 进程的干预即可进行通信。
因此,主服务器进程始终运行,等待客户端
连接,而客户端和相关的服务器进程来
去。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)