【发布时间】:2011-03-06 05:30:06
【问题描述】:
据我了解,JDBC 连接池(在基本级别)以这种方式工作:
- 在应用初始化期间创建连接并放入缓存中
- 按需向应用提供这些缓存连接
- 一个单独的线程维护连接池,执行如下活动:
- 丢弃已使用的连接(关闭)
- 创建新连接并添加到缓存中以保持特定的连接数
但是,每当我在 JDBC 连接池讨论中听到“连接重用”一词时,我都会感到困惑。连接重用什么时候发生?
是不是意味着连接池为两个不同的数据库交互提供了相同的连接(不关闭它)?或者,有没有办法在数据库调用后关闭连接后继续使用连接?
【问题讨论】:
-
只是好奇,但哪些连接池库会启动单独的线程来管理池?我认为 commons-dbcp 不会这样做——至少 BasicDataSource 不会。相反,我认为连接检查是在从池中签出连接时完成的
标签: java jdbc connection-pooling