Druid 异常分析 java.sql.SQLException: interrupt Druid
双鬼带单
共 2261字,需浏览 5分钟
· 2021-05-14
java.sql.SQLException: interrupt Druid
今天看线上一直报 java.sql.SQLException: interrupt
因为第一次遇到也在网上找了一些资料,其中网上的大部分内容如下:
我也遇到了这个问题,您这边解决了吗?我这边是双数据源,我怀疑是多数据源导致的
这个错误是什么引起的,我使用ThreadPoolExecutor运行多线程,调用shutdownNow关闭线程的时候出现的
先调用了 cacel 方法,再调用查询方法导致
因为私有云网卡和阿里云的不匹配导致了 只要是请求超过1k的就会响应不了,能连接上数据库但是没有响应
我也碰到了类似的问题,在中断某一个线程后,我紧跟着需要执行的数据库操作并没有执行。报错为 Could not open JDBC Connection for transaction; nested exception is java.sql.SQLException: interrupt
异常具体内容如下:
2021-05-10 at 16:25:05.262 CST ERROR java.sql.SQLException: interrupt
at com.alibaba.druid.pool.DruidDataSource.getConnectionInternal(DruidDataSource.java:1201) ~[skyrim.engine.jar:?]
at com.alibaba.druid.pool.DruidDataSource.getConnectionDirect(DruidDataSource.java:1086) ~[skyrim.engine.jar:?]
at com.alibaba.druid.filter.FilterChainImpl.dataSource_connect(FilterChainImpl.java:4544) ~[skyrim.engine.jar:?]
at com.alibaba.druid.filter.stat.StatFilter.dataSource_getConnection(StatFilter.java:670) ~[skyrim.engine.jar:?]
查看具体的错误位置代码为:
private DruidPooledConnection getConnectionInternal(long maxWait) throws SQLException {
...
try {
lock.lockInterruptibly();
} catch (InterruptedException e) {
connectErrorCount.incrementAndGet();
throw new SQLException("interrupt", e);
}
...
其中 lock 为 ReentrantLock 也就是当获取连接时,如果线程被中断就会抛出 interrupt
在我们的项目代码中,为了控制响应时间使用了
List<Callable<Record>> callableList = new ArrayList<>();
...
List<Future<Record>> futures =
executorService.invokeAll(callableList, 300, TimeUnit.MILLISECONDS);
其中当 300 毫秒内 callableList 还没有执行完成,就会到线程进行中断,导致 Druid 在 getConnectionInternal 响应线程中断,抛出异常。
评论
每天一个离职小技巧:吞异常
欢迎关注微信公众号:互联网全栈架构先声明一下,写这样的文章,并不是鼓励大家离职,恰恰相反,在如今惨淡的IT就业形势下,奉劝大家千万不要离职!除非迫不得已!文章的本意就是提醒朋友们不要这么做,否则可能会有被开除的风险,因为这样的做法危害性实在是太大了。好,言归正传。在Java编程中,异常处理是非常常见
互联网全栈架构
57
为啥我敢说Python是数据分析界的扛把子语言?
首先声明下这篇文字不是卖课的,也不是无脑吹Python,咱只讲事实,认认真真讨论下Python是不是数据分析领域最好的语言。因为我在知乎上看到非常多人在问这个问题,想必大家是关心的。我的观点是,目前来看所有编程语言里,做数据分析Python是最好的选择,没有之一。列举几个事实:1、Kaggle、天池
Python大数据分析
9
Nat Biotechnol | 叶凯团队开发基因组新生和体细胞结构变异分析算法—SVision-pro
基因组结构变异与丰富多彩的生物性状进化和严重疾病表型密切相关。多种遗传病和癌症的变异研究需要在多个样本之间进行基因组变异差异比较,进而获得真正与疾病进展相关的新生(de novo)和体细胞(Somatic)结构变异。目前,领域内常用的“先检测再求差”的分步式策略要求在基因组检测后有多个计算步骤,繁杂
生信宝典
0
文献分享 | 体外冲击波+本体感觉训练治疗「运动创伤性踝关节炎」患者的效果分析
■ 近年来,国内患有运动创伤性踝关节炎患者的数量在逐年增加,患者主要为青壮年。在日常生活与工作中,不健康运动方式或者运动过度,都会对踝关节健康造成危害。■ 运动创伤性踝关节炎在临床上还被称为足球踝,该病症大多数是运动员踝关节出现急性损伤后,过早负重,韧带因为尚未修复
乐普医疗AI
0
AKShare-股票数据-赚钱效应分析
作者寄语本次更新股票数据-赚钱效应分析接口。本次主要修复该接口,目前该接口可以获取 上涨,涨停,真实涨停,st st*涨停,下跌,跌停 等字段的数据。欢迎加入专注于财经数据和量化投资的【数据科学实战】社区,加入方式参见文末!更新接口"stock_market_activity_legu"  
数据科学实战
275
基于源码的 Webpack 结构分析
分享背景即使目前优秀的构建工具层出不穷,Webpack 还是保持着其在现代前端开发工具链中不可替代的地位。这主要得益于其优秀的灵活性以及强大的生态系统。然而,随着版本更替,Webpack 的功能越来越庞大,整体的代码量日渐夸张,大大提高了学习难度。与此同时,大多数人对 Webpack 的使用都停留在
全栈前端精选
1
一个超强的Python库!HTTP请求性能分析工具推荐:httpstat!
什么是Python httpstat?httpstat是一个基于命令行的工具,用于在终端中展示HTTP请求的详细统计信息。它以可视化和易读的方式显示了HTTP请求的各个阶段的性能数据,如DNS解析、TCP连接、TLS握手、发送请求、服务器处理、接收响应等。使用httpstat可以帮助开发人员更好地理
测试开发技术
10
100种分析思维模型之:本质思维
你好,我是林骥。北京有个出租车司机,原来住在四合院,房改之后,他就把四合院卖了,买了一辆桑塔纳,当时感觉风光无限,现如今则是后悔不已。假如这个出租车司机当时具有本质思维,也许就不会做出卖房买车的决定。下面介绍 100 种分析思维模型的第 97 种:本质思维,它能帮助我们更好地看清事物的本质,进而做出
林骥
18