2016-08-04 3 views
-2

Мы используем пул соединений tomcat для нашего приложения. Время от времени из журнала регистрируется, что соединения недоступны в пуле. Из-за этого пользовательское действие не прерывает сам сервер приложений. Мы добавляем следующие параметры для источника данных .:tomcat connection pool issue

<Resource 
    name=XXXXX 
    type=xxxxx 
    username=xxxxx 
    password=xxxxxx 
    driverClassName=xxxxx 
    maxIdle=2 
    url=xxxxx 
    maxActive=10 
/> 

Вопроса: Возможно ли, что пул соединений становится пустым для определенной длительности, а затем соединения снова доступны?

+0

Я бы подумал, что вы хотите minIdle –

+0

Ответ на заданный вами вопрос «ДА», но этот ответ, вероятно, бесполезен, поскольку вы уже знаете его из поведения вашей программы. –

+0

@Scary minIdle по умолчанию имеет initialSize, который равен 10 – ravthiru

ответ

0

Пул соединений не будет снижаться до 0, если только все простаивающие соединения не будут выполнять проверки валидации. То, что происходит здесь, заключается в том, что ваши соединения являются бездействующими таймингами, вплоть до максимального значения 2. Свободные соединения обычно хороши, потому что они избегают точной проблемы, с которой вы сталкиваетесь; что дорого открывать новые соединения.

+0

Здравствуйте, Джон, спасибо за ваш ответ. Помог ли он, если я добавлю параметры initialSize и minIdle. – user2647805

+0

При загрузке пула подключений он будет создавать соединения initialSize. По мере одновременного запроса большего количества соединений он будет увеличиваться до maxActive. Как только эти соединения простаивают, он упадет до максимума. После того, как тайм-аут простаивает, он опустится до minIdle. Увеличение как maxIdle, так и minIdle приведет к более продолжительному увеличению количества простоя. Поднятие initialSize приведет к созданию соединения бездействия для загрузки, а не по запросу пользователя. Установка minIdle на initialSize - неплохой момент для начала. –

Смежные вопросы