正在从切换 mysql-connector 至 mariadb 客户端库:mysql类的等价物是什么 com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.checkedShutdown() ?如果有的话(我也在用 hikari 连接池)。
mysql-connector
mariadb
com.mysql.cj.jdbc.AbandonedConnectionCleanupThread.checkedShutdown()
hikari
sg3maiej1#
我不相信有一个等效的,它看起来像这个功能没有迁移到玛丽亚数据库。更谨慎的做法是在应用程序中修复连接泄漏。正如hikaricp pool作者在此消息中所解释的,强制关闭废弃连接的此功能有许多问题:是的,我们考虑过(删除废弃的连接),但最终我们决定通过。关闭泄漏连接的问题是多方面的。某个线程可能正在使用该连接,如果我们关闭它,它将在某个地方爆炸(在生产中)。或者没有任何东西在使用这个连接,关闭它没有任何负面影响,但是现在我们刚刚掩盖了一个漏洞,它将导致池中连接不断循环。应用程序负责清理资源。与c/c++程序员相比,java开发人员往往会变得懒惰。这就像内存泄漏一样,两者最终都会导致应用程序死机。否则你如何才能1)知道问题的存在,2)有动力去追踪并解决它。我们非常感谢所有的意见,即使没有采纳。在这种情况下,寻找一个库来防御性地掩盖编码错误的用户可能应该寻找tomcatjdbc。注意,泄漏检测可以在生产环境中运行,并且可以通过jmx控制台在运行时启用,因此没有太多理由添加主动连接回收。
1条答案
按热度按时间sg3maiej1#
我不相信有一个等效的,它看起来像这个功能没有迁移到玛丽亚数据库。更谨慎的做法是在应用程序中修复连接泄漏。
正如hikaricp pool作者在此消息中所解释的,强制关闭废弃连接的此功能有许多问题:
是的,我们考虑过(删除废弃的连接),但最终我们决定通过。关闭泄漏连接的问题是多方面的。某个线程可能正在使用该连接,如果我们关闭它,它将在某个地方爆炸(在生产中)。或者没有任何东西在使用这个连接,关闭它没有任何负面影响,但是现在我们刚刚掩盖了一个漏洞,它将导致池中连接不断循环。
应用程序负责清理资源。与c/c++程序员相比,java开发人员往往会变得懒惰。这就像内存泄漏一样,两者最终都会导致应用程序死机。否则你如何才能1)知道问题的存在,2)有动力去追踪并解决它。
我们非常感谢所有的意见,即使没有采纳。在这种情况下,寻找一个库来防御性地掩盖编码错误的用户可能应该寻找tomcatjdbc。
注意,泄漏检测可以在生产环境中运行,并且可以通过jmx控制台在运行时启用,因此没有太多理由添加主动连接回收。