Alibaba Druid 数据库连接池 takeLast() AQS 死锁导致程序无响应

Alibaba Druid 数据库连接池 takeLast() AQS 死锁导致程序无响应

💡 原文中文,约1200字,阅读约需3分钟。
📝

内容提要

项目现场同事发现应用不定期卡死,堆栈信息显示大部分线程在等待,是因为maxWait参数未配置。配置maxWait后问题解决。

🎯

关键要点

  • 项目现场同事反映应用不定期卡死,堆栈信息显示大部分线程在等待。
  • 问题原因是因为未配置maxWait参数,导致线程在com.alibaba.druid.pool.DruidDataSource.takeLast()等待。
  • 解决方案是配置Alibaba Druid的maxWait参数。
  • maxWait参数的默认值是-1,表示会一直等待连接。
  • 在配置maxWait后,程序无响应的问题得到解决。
  • 最新版本中,maxWait的处理方式有所修改,建议继续关注。
🏷️

标签

➡️

继续阅读