JBoss пул соединений, создающий много соединений с MySQL - PullRequest
2 голосов
/ 18 марта 2011

Мы используем установку JBoss 4.2.2.GA / Hibernate 3.2.4.sp1 / SpringMVC 2.5 / MySQL 5.0.27.

Ниже приведен файл mysql-ds.xml:

<datasources>
  <local-tx-datasource>
    <jndi-name>myDS</jndi-name>
    <connection-url>jdbc:mysql://127.0.0.1:3306/database?zeroDateTimeBehavior=convertToNull&amp;useConfigs=maxPerformance</connection-url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <user-name>user</user-name>
    <password>password<password>
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
    <min-pool-size>5</min-pool-size>
    <max-pool-size>100</max-pool-size>
    <blocking-timeout-millis>30000</blocking-timeout-millis>
    <idle-timeout-minutes>1</idle-timeout-minutes>
    <metadata>
       <type-mapping>mySQL</type-mapping>
    </metadata>
  </local-tx-datasource>
</datasources>

Глядя на консоль JMX -> service = ManagedConnectionPool, мы используем JBossManagedConnectionPool.

Теперь проблема в том, что даже при посредственном трафике (сайт привлек около 5000 посещений / 15000 просмотров страниц вчера), в MySQL в спящем режиме 96 потоков (получено с помощью show processlist).

Они сокращаются во времени, но мой настоящий вопрос заключается в том, почему jboss создает так много соединений? MaxConnections на MySQL = 250.

Любая помощь приветствуется!

Ответы [ 2 ]

1 голос
/ 28 марта 2011

После тщательного анализа было обнаружено, что Hibernate выдавал слишком много запросов во внутреннем интерфейсе для загрузки определенных сопоставлений, поскольку команда mysqladmin status дает 500 запросов / с.

Решение этой проблемы должно решить эту проблемуа также.

Спасибо всем, кто помог ...

1 голос
/ 18 марта 2011

Когда я испытал это, проблема заключалась в том, что некоторые сеансы гибернации не были закрыты, и это приводило к утечке соединения. Убедитесь, что ваши операторы закрытия сеанса находятся в блоке finally.

...