【发布时间】:2012-07-12 22:12:09
【问题描述】:
好吧,I managed get the delegate driver to set up properly, 但是连接池仍然给我带来了很多麻烦。
从文档中给出的描述来看,连接池似乎应该像这样工作:
- 在单个全局 Connection 对象上设置 DBXPool 驱动程序委托
- 将此 Connection 对象用于对数据库的所有调用
- 每个 DB 调用都会通过委托驱动程序自动路由到其线程独有的连接中,该连接归连接池所有。
实际上,我发现一切似乎仍由全局 Connection 对象处理,当我尝试从多个并发线程运行数据库查询时,会导致各种奇怪的竞争条件和崩溃。
如果它是相关的,我没有定义很多 DBX 特定的组件;我一般通过调用Connection.Execute 方法来运行查询。
知道我做错了什么吗?我是否在某处遗漏了一步,或者我对 DBXPool 委托驱动程序的工作原理了解甚少?
【问题讨论】:
标签: delphi connection-pooling dbexpress