java连oracle报错timeout_关于Linux连接Oracle数据库报错Caused by: java.sql.SQLRecoverableException: IO Error: Conn...

最近做项目碰到一个很奇怪的现象,项目在本机运行一切正常,放到LInux服务器上查询数据库的时候就报错Caused by: java.sql.SQLRecoverableException: IO Error: Connection timed out。

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

错误具体描述为,查询一直卡在那里,到了配置的最大的连接时间之后就报超时。

本人通过网上找了些资料,网上的描述为:数据库连接池内的连接在长时间不是用的情况下会失效,而这个时候客户端(也就是我们的程序)并不知道这个连接已经失效,在连接数据库的时候依然会使用这个连接,所以会报错。解决方案为在配置文件里面加上validationQuery=“select 1 from dual”(数据库不同语句也不同,具体参考http://blog.sina.com.cn/s/blog_72ef7bea0101hpj8.html),这样客户端在使用数据库查询的时候会先发这个查询去效验这个连接是否是正常连接,若无效则使用新的连接。

结论:本人使用上面的解决方案之后发现并没有什么卵用。

最终解决:使用了阿里巴巴提供的一个架包,理由是跟上面的一样,查询之前会先去效验这个连接是否正常。下面是配置,要使用的朋友把用户名密码什么的配置下就行了。这个会用到一个架包,下载地址:http://pan.baidu.com/s/1jHeZPpO。

注意失效:架构有风险,换包须谨慎。。。。。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误通常是由于数据库连接失败引起的。可能的原因包括网络问题、数据库服务器未启动、数据库服务器名称或端口号不正确等。以下是一些可能的解决方案: 1.检查数据库服务器是否已启动,并确保您使用的是正确的主机名和端口号。 2.检查网络连接是否正常。您可以尝试使用ping命令测试与数据库服务器的连接。 3.检查防火墙设置,确保允许从您的应用程序服务器连接数据库服务器。 4.检查您的应用程序代码,确保您正在使用正确的JDBC URL和驱动程序类名。 5.尝试使用telnet命令测试与数据库服务器的连接。如果连接失败,则可能需要联系您的网络管理员。 6.如果您使用的是连接池,请确保您已正确配置连接池参数,例如最大连接数和最大等待时间。 以下是一个Java代码示例,用于连接Oracle数据库并执行查询: ```java import java.sql.*; public class OracleJDBCExample { public static void main(String[] args) { try { // 加载Oracle JDBC驱动程序 Class.forName("oracle.jdbc.driver.OracleDriver"); // 建立数据库连接 Connection conn = DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:orcl", "username", "password"); // 创建Statement对象 Statement stmt = conn.createStatement(); // 执行查询 ResultSet rs = stmt.executeQuery("SELECT * FROM employees"); // 处理结果集 while (rs.next()) { System.out.println(rs.getString("first_name") + " " + rs.getString("last_name")); } // 关闭连接 rs.close(); stmt.close(); conn.close(); } catch (Exception e) { System.out.println("Error: " + e.getMessage()); } } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值