В веб-приложении Java, над которым я работаю, мы используем OracleConnectionPoolDataSource для работы с пулом подключений к базе данных. Каждый вызов getConnection включает идентификатор и пароль Oracle. Таким образом, каждый пользователь в некотором смысле заканчивает свой собственный пул соединений с базой данных.Настройка и обновление свойств пула соединений (OracleConnectionPoolDataSource) для лучшей производительности
В настоящее время мы используем значения по умолчанию для большинства свойств. Это включает в себя
- MinLimit установлен в 0
- MaxLimit набор для Integer.MAX_VALUE
- MaxStatementsLimit установлен в 0
- InactivityTimeout набор до 0
- TimeToLiveTimeout набор для 0
- AbandonedConnectionTimeout набор в 0
- PropertyCheckInterval набор 900
- ConnectionWaitTimeout набор в 0
Больше информации об этих свойствах можно найти на Connection Cache Properties.
В настоящее время у нас нет каких-либо серьезных проблем с подключением к базе данных, но думаю, что производительность может быть лучше. Мой вопрос: у кого-то есть хороший совет или хороший ресурс, что мы должны учитывать при настройке этих значений.
InactivityTimeout: По истечении срока действия InactivityTimeout основное физическое соединение закрывается. Тем не менее, размер кеша не разрешается сокращаться ниже minLimit, если он установлен. - Это из документов Oracle и говорит, что minLimit не будет сокращаться, даже если все объекты соединения будут закрыты таймаутом. Означает ли это, что он позволяет устаревшему объекту жить внутри пула? http://docs.oracle.com/cd/B14117_01/java.101/b10979/conncache.htm#CDEBCBJC –