2014年7月13日
半年前开始,项目组测试MM在验证功能时,经常报怨讲测试环境上的应用在启动时很慢,偶尔会报失败,遇到类似问题多数情况下重新启动一次就可以启动成功,但少数时候也有反复启动不成功的案例。当启动失败时,日志里有如下的异常,看起来似乎和网络有关。
java.sql.SQLRecoverableException: I/O Exception: Connection reset
--实际开发中数据连接池占用解决方法删除lib下的jar包重新导入
报错信息java.sql.SQLRecoverableException:IOError:Connectionreset
at
oracle.jdbc.driver.T4CConnection.logon
errorConnectionProviderFactory.initializeConnectionProviderFromConfig(173)|Initializingconnectionprovider:org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider
下面错误就是jdbc连接重置
解决...
public static void main(String[] args) {
String url = "jdbc:
oracle:thin:@localhost:1521/orcl";
String user = "username";
String password = "password";
Properties props = new Properties();
props.setProperty("user", user);
props.setProperty("password", password);
props.setProperty("
oracle.net.CONNECT_
TIMEOUT", "5000"); // 设置连接
超时时间为 5 秒
try {
Connection conn = DriverManager.getConnection(url, props);
System.out.println("Connected successfully");
} catch (SQLException e) {
System.out.println("Connection failed");
e.printStackTrace();
在上面的代码中,我们使用 `props.setProperty("
oracle.net.CONNECT_
TIMEOUT", "5000")` 来设置连接
超时时间为 5 秒。
另外,您还可以使用 `Statement.setQuery
Timeout(int seconds)` 方法来设置查询
超时时间。例如:
```java
Statement stmt = conn.createStatement();
stmt.setQuery
Timeout(10); // 设置查询
超时时间为 10 秒
ResultSet rs = stmt.executeQuery("SELECT * FROM mytable");
在上面的代码中,我们使用 `stmt.setQuery
Timeout(10)` 来设置查询
超时时间为 10 秒。如果查询执行时间超过了 10 秒,将抛出 `java.sql.SQL
TimeoutException` 异常。