【发布时间】:2023-03-04 17:13:01
【问题描述】:
在一个 Java 项目中,我使用的是 ojdbc6 jar
<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 中的什么位置吗?
【问题讨论】:
标签: java oracle jdbc datasource