Jon*_*ham 5 sql delphi rest ado datasnap
我有一个Delphi XE2 DataSnap服务器(Windows服务)连接到服务REST客户端请求的后端MS SQL Server 2008(相同的服务器盒).
直到最近,一切都工作得很好,我遇到了一个问题,由于某种原因,DataSnap服务失去了与SQL Server的连接.
该服务无法重新建立连接,我不得不重新启动DataSnap服务以继续.
这让我思考,因为目前该服务仅使用为所有客户端请求共享的1个SQL连接(TADOConnection).我这样做是因为我不希望为每个客户端请求实例化一个新的SQL连接.
我正在考虑为每个请求建立一个单独的SQL连接是否真的会更好,如果开销会很明显 - 有人可以评论/建议吗?
这就是拥有一个结构良好的数据访问层非常有用的地方,该数据访问层可以修改以尝试不同的方法并将数据库连接与代码的其余部分隔离。
如果您在客户端和 DataSnap 服务器之间使用 MIDAS (DataSnap),则强烈建议使用池方法(如 mjn 建议的那样),因为我发现它具有很大的连接开销。
我构建了一些在运行时使用普通 TADOConnection 的 Web 服务(流量相当低),并且发现建立数据库连接的开销可以忽略不计,当然与从设备到服务器的整体网络延迟相比,后退。
如果您发现 TADOConnection 在高流量环境中仍然产生太多开销,您可以轻松地将您自己的连接池添加到这样的系统中,如上所述。
| 归档时间: |
|
| 查看次数: |
1617 次 |
| 最近记录: |