Я настроил Tomcat ГСБД как:ДБХП Tomcat Пулы соединений removeAbandoned не работает
<Resource
name="jdbc/myoracle"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@127.0.0.1:1521:mysid"
username="abc"
password="abc"
maxActive="20"
maxIdle="4"
minIdle="0"
maxWait="4"
removeAbandoned="true"
logAbandoned="true"
removeAbandonedTimeout="3"
/>
Я не знаю, я определил вышеуказанные параметры, как правильно или нет. Я использую struts 2, веб-страница имеет ссылку меню и вызывает класс действия, где я выполняю все операции db и открываю/закрываю соединения из/в объединение. Проблема заключается в том, что если я постоянно продолжаю нажимать ссылку на меню, скажем 40-50 раз, соединения растут там, где один щелчок мыши, а затем ожидание ответа, делает все (т.е. не увеличивая соединения).
только непрерывного ума щелкая, не дожидаясь единого ответа делает соединения расти покруче и не возвращаться к исходному. Если мои соединения протекают где-то в классе действий, то почему он отлично работает для одного щелчка мыши, ждет ответа и затем другого щелчка мыши?
(Непрерывное нажатие на те же результаты ссылки на меню :) Как я определил maxActive as 20, Connections продолжатся до 24 (как я помню), и после того, как этот пул исчерпан, то есть новое соединение/запрос ждет бесконечно, чтобы получить соединение из исчерпанного пула.
Здесь я сомневаюсь, почему removeAbandoned не закрывал соединения как я указал removeAbandonedTimeout = 3. Если i Предположим, что у меня есть утечка памяти для подключения или я не закрываю какие-либо соединения сознательно, тогда removeAbandoned убьет все эти открытые соединения или нет?
или есть какие-либо ошибки в настройках DBCP или выше параметров? Пожалуйста, помогите мне разобраться.
Я попытался немного увеличить значения, но все равно будет. Я понимаю, что removeAbandonedTimeout значение должно быть больше, чем нет. секунд, которые необходимы для запуска любой операции db, чтобы избежать нарушения соединения. Но не удаляетAbandonedTimeout = "3" означает закрывать соединения/или отбирать обратно даже соединения режима работы в пул? –
Почему после 50-60 непрерывных щелчков мыши пул соединений исчерпан и перестает выделять больше соединений? –
Что вы имеете в виду, говоря «увеличение значений немного»? Дело в том, что все ваши значения намного меньше, чем значения по умолчанию (removeAbandonedTimeout = 60, maxActive = 100, maxIdle = maxActive = 100, minIdle = initialSize = 10, maxWait = 30000). Есть ли у вас какая-либо конкретная причина использовать значения, намного меньшие, чем стандартные? Итог, если вам нужно больше подключений, почему бы не выделить больше? –