Почему так много "postgres.exe" создаются при запуске моего приложения? - PullRequest
14 голосов
/ 27 июля 2011

У меня есть приложение J2EE, развернутое на сервере приложений JBoss6 на Windows (Vista 32 bit) платформа.Моя база данных " 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.

В окнах «Диспетчер задач»Я обнаружил, что при запуске сервера PostgreSQL он создает 6 процессов "postgres.exe" .Теперь, когда я развертываю / запускаю свое приложение J2EE в JBoss, я обнаруживаю всего 66 процессов "postgres.exe".Это означает, что из-за запуска моего приложения были запущены (или запущены) другие 60 процессов postgres .

Если я изменю max-pool-size на 40 затем я замечаю, что у меня всего 46 процессов postgres.exe .В обоих случаях нет.процессов postgres сводится к 6, когда я останавливаю свое приложение J2EE.

Итак, мой вопрос, это нормально?Эти дополнительные процессы порождаются / запускаются из-за «пула соединений» (используется Hibernate)?

1 Ответ

23 голосов
/ 28 июля 2011

Да, это нормально.Из руководства :

Сервер PostgreSQL может обрабатывать несколько одновременных подключений от клиентов.Для этого он запускает («вилки») новый процесс для каждого соединения .С этого момента клиент и новый серверный процесс обмениваются данными без вмешательства исходного процесса postgres.Таким образом, процесс главного сервера всегда работает, ожидая клиентских подключений, тогда как процессы клиента и связанных с ним серверов приходят и уходят.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...