【发布时间】:2016-01-27 09:34:57
【问题描述】:
对于我的项目,我们被要求实现自己的连接池。我们不允许使用来自 jdbc 的 PGoolingDataSource。当我使用 jdbc 池时,我的程序非常快,而我自己的连接池则无法预测并且速度要慢得多。我的连接使某些任务等待很长时间,而 jdbc 池不会发生这种情况。
我正在使用 Arrayblockingqueue 来实现连接池,我只是创建了一个预先设定的连接数,然后我让客户端借用并放回它们。
我的意思是这对我来说似乎很有意义,并且有效。但是它很慢,有时任务需要永远完成,有没有我可以改进它?让它更快更可靠?
【问题讨论】:
-
当从池中获取连接时,
if(c == null|| !c.isValid(2))这个验证检查是否通常返回 false,因此它必须创建一个全新的连接? -
不,但它只是为了确保如果连接无效/或为空,我们会创建一个新连接。
标签: java jdbc connection-pooling