【问题标题】:ODBC Connection PoolingODBC 连接池
【发布时间】:2010-05-17 14:26:37
【问题描述】:

我从一位开发人员那里继承了一套 .Net c# 应用程序,这些应用程序与 unix 服务器上的 Informix 数据库通信。

代码似乎没有使用管理数据库连接的常规做法(一次性模式/“延迟打开/提前关闭”),而是在每个应用加载时打开一个 ODBC 连接,而不是关闭它。

有什么方法可以查看打开了多少 ODBC 连接?

我正在尝试为重构应用程序中的代码以使用 .NET 最佳实践提出理由,但我遇到了阻力,因为当前代码有效。

【问题讨论】:

  • .NET 框架在连接未使用时使用连接池。但是连接在启动时打开并在结束时关闭。所以,池化不可能是有效的。
  • 使用什么 ODBC 驱动程序?根据 ODBC 驱动程序的类型,池的工作方式可能有所不同

标签: .net database odbc connection


【解决方案1】:

“但我遇到了阻力,因为当前的代码有效。”

+1 给予抵抗者。

如果确实是正确支持了所需的功能,并且没有任何性能问题左右,那么没有任何问题,如果没有任何问题,则不需要修复。

我见过太多的编码雅皮士搞砸了工作系统,因为他们认为自己知道一种“更好”的方式来组织代码。

如果您确信您的代码组织方式(您所谓的“最佳实践”)与现有系统中应用的方式相比有任何好处,请通过将其应用到新项目中向业务部门证明这一点。如果确实有明显的好处,那么相信我,用户会注意到的。如果没有,那么您已经学到了非常重要的一课,即“哪种编码方式是最好的”并不重要。

【讨论】:

  • 当我说当前代码有效时,这个项目正在进行中,产品还没有发布给用户。由于现有代码库的设计/实现方式,路线图中的新功能变得越来越难以实现。我想重构代码的原因是让它更易于维护,并使我们能够引入单元测试,因为我相信这将在未来为我们节省时间和金钱。谢谢你的咆哮......
【解决方案2】:

您可以在 ODBC 管理器中启用 ODBC 跟踪,启动应用程序,然后打开请求的池化 ODBC 连接。编辑 ODBC 跟踪文件文件,并可以通过调用 SQLConnect 或 SQLDriverConnect 来给出应用程序进行的 ODBC 连接总数。任何出现的 SQLDisconnect 都表示连接已关闭,这应计入连接总数...

【讨论】:

  • 谢谢。我这样做了,并且能够看到同时打开一些应用程序,超过 25 个连接在我自己的机器上保持打开状态。
猜你喜欢
  • 2012-01-26
  • 2019-03-19
  • 1970-01-01
  • 1970-01-01
  • 2018-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-28
相关资源
最近更新 更多