网站首页 > 数据库 / 正文
【地震高岗,一派西山千古秀】
问题背景(由于公司保密条例不便切图)
开发阶段使用Oracle测试库,彼时数据量较少,根据ID获取列表功能没问题,暂时未发现BUG。但是当在灰度环境进行试运行时,伴随列表数据突增,出现错误“无法从套接字读取更多数据”;如下提示: Cause:java.sql.SQLRecoverableException:无法从套接字读取更多的数据
分析过程
- 这个错误信息告诉我们几点:不是JDBC或者oracle的问题,应该是通信异常
- 尝试用客户端工具Navicat访问后台的sql是可以查询的
- 使用代码程序查询就会出现题目中的问题,并且可复现几率很大
- 问题原因方向:驱动问题、sql子查询问题
解决方案
- 更新驱动版本,尝试重连后访问。(未解决)
- 对于sql语句进行拆分优化,子查询使用多个sql语句进行查询结果的代码处理(未解决)
思考
对于分析过程是没有问题的,方向也是对的,那么为什么根据步骤执行还是无法解决,我们当前访问数据库是甲方客户VPN连接后访问,中间会有代理跳转访问,正值过年期间机房几乎没人值守,会不会出现路由司机了,想到这里感觉脑洞大开了,灵机一动,如果切换为本地数据库连接是不是可以正常加载接口数据呢?说干就干,数据源切换,打包重启服务,点开列表页面,哦吼!完美! 那么最终的原因是否如我们猜想的那样呢,记住程序员第一要义:不明觉厉的代码肯定是有问题的。后来我从服务器撸下来oracle日志分析:如图明显看到了错误信息:ORA 07445,这是一个非常普通的错误,在oracle的代码中产生,这个错误代码需要更详细的描述信息进一步跟踪
最后查询资料简单的执行了以下命令就解决了,上菜:alter session set "_optimizer_connect_by_cost_based" = false scope=both; 事实证明在甲方客户那边数据库执行后也没有出现问题,到此结束。
【门朝大海,三河合水万年流】
Tags:oracle查询库
猜你喜欢
- 2024-11-26 Oracle数据库之高级查询一
- 2024-11-26 oracle查询用户的权限
- 2024-11-26 oracle数据库查询Sql语句是否使用索引及常见的索引失效的情况
- 2024-11-26 Oracle查询扩展
- 2024-11-26 连载四:Oracle升级文章大全(完结篇)
- 2024-11-26 Python 操作Oracle数据库常用的方法和工具
- 2024-11-26 分享两个Oracle的shell脚本---一键获得数据库实例状态、参数及包
- 2024-11-26 ORACLE 分页查询整理笔记
- 2024-11-26 详解Oracle 11g如何快速定位到lobsegment、lobindex对应的表
- 2024-11-26 日常运维笔记--给oracle用户授权,使之能查询系统视图