В проекте Java я использую банку ojdbc6
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.1.0</version>
<scope>compile</scope>
</dependenc>
Первый раз за день, когда я запускаю, dataSource.getConnection () работает быстро. Второй раз обычно нормально. Следующие несколько раз займут около 45 секунд. После этого потребуется несколько минут. После того, как я установил ПЕРВОЕ соединение для данного приложения, любые новые соединения, которые я получаю, выполняются очень-очень быстро. Эта задержка связана с получением только ПЕРВОГО соединения для данного прогона.
Что делает мое первое соединение таким медленным?
Я смотрю netstat и не вижу, чтобы какое-либо соединение зависало после успешного выполнения. Пробовали несколько разных пулов соединений ( DBCP, C3PO ), но безуспешно. Отладка с использованием исходного кода, задержка составляет 100% в строке org.springframework.jdbc.datasource.DataSourceUtils :
Connection con = dataSource.getConnection();
Есть идеи?
Отредактировано для получения дополнительных сведений
1) Я используя пул соединений (DBCP или C3PO), который сохраняет соединения для использования в будущем. Когда я говорю о создании нового соединения, я имею в виду, когда используется первое соединение. Мне нужно перейти в БД и получить НОВОЕ соединение. Конечно, я могу возвращаться и получать одно и то же соединение из пула соединений снова и снова. Но одновременно получить секунду тоже быстро.
2) Я не знаю, через сколько соединений моя БД позволяет мне войти в систему. Есть идеи, где это свойство находится в oracle?