解决jdbc连接oracle rac报错一例: Got minus one from a read call

    某个项目之前是oracle 11g单机环境,现在升级成了oracle 11g rac环境。某个应用程序需要通过调用JDBC连接ORACLE数据库,从ORACLE数据库中查询部分数据,而数据库升级为RAC环境后,JDBC连接ORACLE数据库的代码也做了相应修改。但发现改后却老是报错,错误信息为 java.sql.SQLException: Io 异常: Got minus one from a read call ,改为只连接某一个实例却无问题。

    于是上网查这个错误信息,发现报这个错的很多,原因也各不相同,排除了好几种后问题还是没有解决。还在上一家公司的时候我就发现同事在用JDBC连接ORACLE RAC数据库时只连接了其中的一个实例,这样当连接的那一台ORACLE主机出问题时,将会造成JDBC连接数据库失败,而这显然是不合适的,但当时同事说他们试过连接RAC数据库就是不行,老报错。现在想来估计是同类问题。而现在的同事也表示只能连单机,不能连RAC,因为不懂JDBC,同事说不能连我也没多想,最开始是建议他们在JAVA里调ODBC来解决,经过测试也是可行的,但就是要多安装一个oracle客户端。后来上网查jdbc连接oracle rac的资料,发现是一大把的资料,并没人反映连rac数据库有什么问题,这说明JDBC理论上连接ORACLE RAC应当是不存在问题的。

    于是接着问度娘,关于该报错信息终于找到了一个我认为比较合理的解释
http://news.newhua.com/news/2011/0331/119074.shtml
    大意是指一些老的JDBC驱动包是不支持RAC数据库的,想着我们这套系统还是多年前开发的,极有可能是JDBC驱动包过老引起的。马上建议同事将JDBC驱动包换成最新的,于是从oracle的安装目录中找了JDBC驱动ojdbc6.jar替换原来的JDBC驱动包,再一测试,果然没问题了。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值