Слишком много подключений к источнику данных - PullRequest
1 голос
/ 29 июня 2010

У меня есть приложение, которое я использую BoneCP для пула соединений, и когда я развертываю войну на tomcat, она отлично работает. Но когда я создаю другую войну (почти идентичную, только другой скин и соединение с БД) и развертываю их обоих, я получаю следующую ошибку при запуске tomcat:

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected establishment of connection,  message from server: "Too many connections"

Обратите внимание, что по прошествии некоторого времени этого не происходит, поэтому я не пропускаю соединения, не закрывая их, а скорее при запуске.

Мои свойства соединения hibernate / boneCP в моей конфигурации Spring следующие:

<bean id="sessionFactory"
      class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.connection.provider_class">com.jolbox.bonecp.provider.BoneCPConnectionProvider</prop>
            <prop key="hibernate.connection.driver_class">com.mysql.jdbc.Driver</prop>
            <prop key="hibernate.connection.url">${connection.url}</prop>
            <prop key="hibernate.connection.username">${connection.username}</prop>
            <prop key="hibernate.connection.password">${connection.password}</prop>
            <prop key="bonecp.idleMaxAge">60</prop>
            <prop key="bonecp.idleConnectionTestPeriod">5</prop>
            <prop key="bonecp.partitionCount">3</prop>
            <prop key="bonecp.acquireIncrement">10</prop>
            <prop key="bonecp.maxConnectionsPerPartition">60</prop>
            <prop key="bonecp.minConnectionsPerPartition">20</prop>
            <prop key="bonecp.statementsCacheSize">50</prop>
            <prop key="bonecp.releaseHelperThreads">3</prop>
        </props>
    </property>
....

У кого-нибудь есть идеи?

Ответы [ 2 ]

4 голосов
/ 29 июня 2010

По это поток:

Это знак того, что вы спросили BoneCP, чтобы создать больше соединений, чем ваш сервер MySQL настроен на принимаем. Либо увеличить количество подключения MySQL позволит (через администратор mysql) или скажите создать меньше соединений.

По умолчанию MySQL позволяет создавать всего несколько соединений, поэтому я бы начать с этого первым.

P.S. Извините за капчу тест - количество попыток spambot я получаю удар с невероятно; я собираюсь выключи его на ступеньку выше.

Вы должны либо уменьшить bonecp.maxConnectionsPerPartition, либо изменить конфигурацию сервера MySQL, чтобы принимать 60 * number of instances of your app одновременных подключений.

2 голосов
/ 29 июня 2010

Вы создали 3 раздела с максимум 60 соединениями в каждом, так что вы подключаетесь к mysql со 180 подключениями (значение по умолчанию в mysql намного ниже этого значения).

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