Получение следующей ошибки Не удается получить соединение, ошибка пула Тайм-аут ожидания объекта бездействия

Я получаю следующую ошибку при входе в свое приложение.

Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot get a connection, pool error Timeout waiting for idle object
    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:82)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:572)

Недавно мы переместили наше приложение из одной среды в другую, и вчера мы получили указанную выше ошибку. Я исследовал в Интернете, и все предлагают проверить закрытие соединений, но я проверил свой код, и все соединения были правильно закрыты.

Есть ли другая причина, которая может вызвать эту проблему? Нужно ли менять параметры установки оракула в БД? Или любая конфигурация в server.xml будет работать?

Спасибо за вашу помощь.


person Dileep    schedule 08.05.2014    source источник
comment
Все ли файлы sql.properties и вспомогательные файлы на месте? И свойства подключения обновлены в соответствии с новой средой.   -  person NeverGiveUp161    schedule 08.05.2014
comment
Вы используете какой-либо уровень виртуализации данных? это определенно из-за открытых соединений, но если вы используете какой-то уровень DVL, тогда трудно исследовать, какие из них открыты. Вы также можете попробовать проверить, какой метод блокирует соединение. Alternaitvely there can be many problems with this much details it is hard to tell what is creating the problem.The possible reasons may be 1) Have you copied the DS files and mentioned the correct DS in code?? 2)Some method might not be auto-committing after it is done??   -  person NeverGiveUp161    schedule 08.05.2014
comment
Не могли бы вы предоставить максимальное количество потоков вашего соединения по сравнению с максимальным количеством вашей базы данных?   -  person ledlogic    schedule 17.01.2015


Ответы (2)


Параметры установки Oracle? Нет, я так не думаю.

Практически невозможно ответить на основании того, что вы опубликовали, поэтому вот несколько вопросов:

  1. Как вы настроили пул соединений JNDI?
  2. Ваше приложение находится под необычно большой нагрузкой? Может ли бассейн иссякнуть?
  3. Существуют ли какие-либо длинные потоки, которые слишком долго висят на соединениях?

Лучший способ выяснить это — профилировать ваше приложение.

person duffymo    schedule 08.05.2014
comment
Мы настроили пул соединений JNDI, и нагрузка на приложение невелика. попробую профилировать, спасибо - person Dileep; 08.05.2014

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

Я столкнулся с такими проблемами при обновлении с 10g до 11g. При обновлении БД вам также необходимо обновить драйвер оракула.

person Lokesh    schedule 08.05.2014
comment
Привет, версия базы данных такая же, и я использую ojdbc6.jar. Мы получили эту ошибку только один раз, и после этого она работает нормально. - person Dileep; 08.05.2014
comment
JAR JDBC должен соответствовать вашему JDK. 6 означает JDK6. Если вы используете JDK7, я бы рекомендовал обновление, но это не ваша проблема. - person duffymo; 08.05.2014