DruidAbstractDataSource检查连接有效性相关代码的修改建议

smtd7mpg  于 4个月前  发布在  Druid
关注(0)|答案(3)|浏览(58)

druid/src/main/java/com/alibaba/druid/pool/DruidAbstractDataSource.java

Line 1391 in c7ad372

| | booleanresult = true; |

这行代码 result 初始值是否修改为 false 更合适?

原因如下:

当执行 validConnectionChecker#isValidConnection 检查连接有效性的方法抛出非 SQLExceptionException 时,会走到

catch (Exception ex) {
         error = ex;
}

语句块,此时 resule 依旧是 true ,继续执行

if (!result) {
   SQLException sqlError = error != null ? //
        new SQLException("validateConnection false", error) //
        : new SQLException("validateConnection false");
    throw sqlError;
}

将无法起到将 Exception 异常包装成 SQLException 的目的(我猜测这段代码是这个目的)。

iyfjxgzm

iyfjxgzm1#

阿里的这个开源项目1.8k个问题都没人解答吗?现在遇到那个ora01013的问题一直都没有解决,偶现。

rseugnpd

rseugnpd2#

阿里的这个开源项目1.8k个问题都没人解答吗?现在遇到那个ora01013的问题一直都没有解决,偶现。

什么问题?我可以帮忙看看

ipakzgxi

ipakzgxi3#

阿里的这个开源项目1.8k个问题都没人解答吗?现在遇到那个ora01013的问题一直都没有解决,偶现。

什么问题?我可以帮忙看看

#2175
和这个人遇到的问题一样。
自动化ci有时候会遇到ORA-01013的错误,但是理论上次来说服务端都不可能有自动取消的动作,都是DDL。
create tablespace
create user
-- 然后测试业务功能
drop user
drop tablespace
一个轮训自动化任务下来,这个流程会执行很多次,500次左右。
有一段时间消失过这个问题,也是偶先的后台会收到ORA-01013的错误。不是必先问题。

相关问题