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

Jdbc c3p0或dbcp或BoneCP可以处理断开的连接,jdbc,connection-pooling,c3p0,apache-commons-dbcp,bonecp,Jdbc,Connection Pooling,C3p0,Apache Commons Dbcp,Bonecp,我正在阅读关于c3p0和dbcp处理jdbc连接的文章,听到很多问题,人们说dbcp已经死了,但c3p0不能处理jdbc4等等。但我不知道这些帖子是否过时了 现在我想到了BoneCP,它解释了如何处理断开的连接。连接被包装,在异常传递到应用程序之前,BoneCP对异常进行一些预检查。如果连接有问题,BoneCP会将其从池中删除 1.)所有这些池都有这种连接处理吗 2.)这个问题被问了一次又一次,但从2011年起我就找不到任何答案。我应该为一个新的应用程序使用哪一个,它将被维护10年,如果不是更长

我正在阅读关于c3p0和dbcp处理jdbc连接的文章,听到很多问题,人们说dbcp已经死了,但c3p0不能处理jdbc4等等。但我不知道这些帖子是否过时了

现在我想到了BoneCP,它解释了如何处理断开的连接。连接被包装,在异常传递到应用程序之前,BoneCP对异常进行一些预检查。如果连接有问题,BoneCP会将其从池中删除

1.)所有这些池都有这种连接处理吗

2.)这个问题被问了一次又一次,但从2011年起我就找不到任何答案。我应该为一个新的应用程序使用哪一个,它将被维护10年,如果不是更长的话。

1。)我不知道dbcp,但对于C3P0,这个功能确实存在于C3P0PooledConnection类中(在invoke方法中,异常被捕获并处理,如果您想了解更多关于确切处理的详细信息,我可以添加它们)。我还需要知道它是否包含该异常,以删除testOnCheckin/Checkout,并且我验证了它包含此行为


2.)真的很难说,因为一方面C3P0广泛应用于许多生产现场,并且维护人员已经恢复了积极的开发,但另一方面BoneCP似乎有一些非常有趣的设计原则(例如池切分)和一些令人满意的基准。由于您的连接池库通常有一个非常好的间接寻址(大部分依赖项包含在一个或两个配置文件中),因此我建议您从一个间接寻址开始,一旦您有了具有实际数据的产品,请尝试对其进行优化,并将其与另一个库进行比较(当然也进行了优化)。很可能您选择的任何一个库都足以满足您的需要

您不使用应用服务器提供的池实现有什么原因吗?是不是您的应用程序服务器没有?不是web应用程序。这些东西仍然存在:-)这是一个可以非常多线程和随机访问数据库的软件。如果已经有一些可以同时访问数据库的好东西,我不想重新发明轮子。你可能会在这里找到答案。