【发布时间】:2014-10-06 13:33:31
【问题描述】:
我使用 Delphi 和 Indy TIdHttpServer 组件编写了一个 Web 服务器。我正在管理一个与 MySql 数据库的 TAdoConnection 连接池。当一个请求进来时,我会在我的池中查询可用的数据库连接。如果一个不可用,则创建一个新的 TAdoConnection 并将其添加到池中。
当连接变得“陈旧”(即它已经有一段时间没有被使用)时,就会出现问题。我认为在这种情况下,查询会导致“MySql has gone away”错误。
有没有人有办法解决这个问题?或者我会自己通过以下方式之一来管理它:
- 编写将定期“刷新”所有连接的线程。
- 跟踪最后一个活动查询,如果太旧,请放弃使用连接并释放它。
【问题讨论】:
-
连接数据库时在池对象中添加时间戳,当池对象“旧”(即 x 分钟)时丢弃池对象并创建新连接...跨度>