在Java项目中,我使用的是ojdbc6罐子甲骨文的getConnection慢
<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),但没有运气。通过源代码的调试,延迟上的org.springframework.jdbc.datasource.DataSourceUtils行100%:
Connection con = dataSource.getConnection();
任何想法?
编辑的更多详细信息
1)我使用连接池(DBCP或C3PO),从而节省了供以后使用的连接。当我谈到获得一个新的连接时,我的意思是,当第一个连接正在使用..我需要去数据库并获得一个新的连接。当然,我可以一次又一次地从连接池中返回并获得相同的连接。但同时获得第二名也很快。
2)我不知道有多少连接我的数据库让我登录。任何想法,这个属性是在甲骨文?
也许这篇文章[如何检查允许连接到Oracle数据库的最大数量?](http://stackoverflow.com/questions/162255/how-to-check-the-maximum-number-of-allowed-connections-to-an-oracle-database)对你而言很有趣 – lkdg 2011-04-01 05:44:45