c3p0或dbcp或BoneCP可以处理断开的连接

问题描述

| 我正在阅读有关处理jdbc连接的c3p0和dbcp的信息,听到很多问题,有人说dbcp已死,但c3p0无法执行jdbc4,依此类推。但是我不知道这些帖子是否过时。 现在,我点击了BoneCP,它解释了此处如何处理断开的连接。连接被包装,BoneCP在将异常传递给应用程序之前对其进行了一些预检查。如果连接出现问题,则BoneCP会将其从池中删除。 1.)所有这些池都有这种连接处理吗? 2.)这个问题一遍又一遍地被问到,但从2011年起我找不到任何答案。对于新的应用程序,我将使用什么?如果没有更多的话,该应用程序将在未来10年内保持不变。     

解决方法

        1.)我不了解dbcp,但是关于C3P0,此功能确实存在于C3P0PooledConnection类中(在invoke方法中查找,捕获并处理了异常,如果您想了解有关我可以添加的确切处理的更多详细信息,他们)。我还需要知道是否包含它以删除testOnCheckin / Checkout,并且我验证了它是否包含此行为。 2.)真的很难说,因为一方面C3P0已在许多生产站点中广泛使用,并且维护者已恢复积极开发,但另一方面BoneCP似乎具有一些非常有趣的设计原理(例如池分片)和一些奉承的基准。由于您通常从连接池库中获得一个相当不错的间接寻址(大多数依赖关系包含在一个或两个配置文件中),因此我建议您从一个开始,一旦产生具有实际数据的产品,就尝试对其进行优化并与之进行比较另一个库(当然也进行了优化)。很可能您选择的任何一个库都足以满足您的需求。     

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...