场景

项目经常报readTimeout异常。
特点:
最头疼的问题之一,发生时间不定,发生情况不定。 难以排查。

解决方案

扩大连接池配置

配置文件中修改最大连接数

这种方式一定程度有效,如果连接池数量不少,还是报readTimeout,说明代码一定有问题。

其他

不通的数据库地址

如果数据库地址,或者dblink不通,会造成readTimeout吗?

涉及修改的逻辑,最容易出现锁或者超时

涉及修改的逻辑,很容易出现锁,应该作为重点排查对象,例如有一个全表锁,所有的修改都会阻塞。

### 执行语句时设置超时时间

alter session set ddl_lock_timeout = 300 ;
然后后面是要执行的语句 例如 全表update 
这样避免卡住。

生产一般不会有这个问题,pre没开启wait,就需要单独配置下超时时间。

更多推荐