好吧, 我设法得到委托驱动程序设置正确,但连接池仍然给了我很多的麻烦。
从文档中给出的说明,看来连接池应该像这样工作:
- 建立DBXPool司机代表一个单一的,全球Connection对象上
- 使用此连接对象的所有调用到数据库
- 每个数据库调用将通过委托司机获得自动地路由到所独有的它的线程,通过连接池拥有的连接。
在实践中,我发现,一切似乎仍然受到全球Connection对象来处理,导致各种奇怪的比赛条件和崩溃,当我尝试从多个并发线程的数据库查询。
如果它是相关的,我没有很多具体的DBX组件定义; 我一般运行通过调用查询Connection.Execute
方法。
任何想法,我做错了什么? 我错过了一步的地方,或者说我的DBXPool委托司机是如何工作的坏理解?