En un proyecto Java, estoy usando un frasco de ojdbc6Oracle getConnection lenta
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.1.0</version>
<scope>compile</scope>
</dependenc>
La primera vez para un día corro, DataSource.getConnection() es rápida. La segunda vez usualmente está bien. Las próximas veces toman alrededor de 45 segundos. Después de eso, lleva varios minutos. Una vez que tengo la PRIMERA conexión de una aplicación determinada, todas las conexiones nuevas que recibo son muy rápidas. Esta demora solo está obteniendo la PRIMERA conexión para una corrida dada.
Lo que está haciendo conseguir mi primera conexión es tan lenta?
estoy viendo netstat y no veo ninguna conexión colgando después de una carrera exitosa. He intentado varios grupos de conexiones diferentes (DBCP, C3PO) sin suerte. Depuración a través del código fuente, la demora es de 100% en la línea de org.springframework.jdbc.datasource.DataSourceUtils:
Connection con = dataSource.getConnection();
alguna idea?
Editado Para más detalles
1) Estoy utilizando un pool de conexiones (DBCP o C3PO) que ahorra conexiones para uso futuro. Cuando hablo de una nueva conexión, me refiero a que la primera conexión está en uso. Necesito ir al DB y obtener una NUEVA conexión. Por supuesto, puedo regresar y obtener mi misma conexión del grupo de conexiones una y otra vez. Pero obtener un segundo al mismo tiempo también es rápido.
2) No sé cuántas conexiones DB mi me permite estar conectado con. ¿Alguna idea de dónde está esta propiedad en Oracle?
Probablemente este artículo [Cómo comprobar la número máximo de conexiones permitidas a una base de datos Oracle?] (http://stackoverflow.com/questions/162255/how-to-check-the-maximum-number-of-allowed-connections-to-an-oracle-database) es interesante para usted – lkdg