У меня есть, я бы сказал, довольно большая проблема.
Я работаю над веб-приложением Java, которое использует пружины BasicDataSource для настройки соединения с БД. Я тестировал приложение локально, и оно прекрасно работает ... но когда приложение подключено к сети, соединение с БД в какой-то момент просто зависло. Я занимался исследованием пула подключений и выяснил, что при каждом новом HTTP-запросе, где выполняются некоторые запросы, создается новый пул. Как я знаю, пул вводится для повторного использования и не создается каждый раз, когда задействован новый доступ к БД. Или я не прав?
Вот мой весенний конфиг источника данных:
<bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}"/>
<property name="url" value="url"/>
<property name="username" value="username"/>
<property name="password" value="password"/>
<property name="defaultAutoCommit" value="true"/>
<property name="defaultTransactionIsolation" value="1"/>
<property name="initialSize" value="0"/>
<property name="maxActive" value="20"/>
<property name="minIdle" value="0"/>
</bean>
Чем я настроил:
<bean id="EventDao" class="my.managament.database.class">
<property name="dataSource" ref="dataSource"/>
</bean>
И mainPageController, который обрабатывает все HTTP-запросы, отправленные приложению
<bean id="mainController" class="my.management.main.controller.class">
В остальной части приложения я использую gedDatabase () для получения соединения с БД и выбираю через JDBCTemplate.
Где я ошибаюсь?
Спасибо