我们有一个在 Classic ASP 上运行的应用程序,我想使用连接池。
该应用程序当前使用它作为其连接字符串:
"Provider=MSDASQL; Driver={SQL Server}; Server=db.example.com; Database=DBName; UID=Username; PWD=Password; ConnectionTimeout=15; CommandTimeout=120;"
当我启动 ODBC 连接池 perfmon 时,我没有看到池中的任何连接。
我读了本文这建议在 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\W3SVC\ASP\Parameters 中设置一个值,但是没有 \ASP 键,所以我不确定它是否适用于 IIS 6.0。
有人遇到过这个问题吗?有没有简单的方法可以启用池化?
答案1
这参考文章(引用自您引用的文章底部)指出,在 IIS 4.0 及更高版本上,连接池默认为开启。因此您无需通过注册表启用它。
来自另一个文章:
要最佳地使用连接池,需要遵循几条规则。首先,打开连接,执行工作,然后关闭连接。如果有必要,可以对每个请求多次打开和关闭连接(最好应用提示 1),而不是保持连接打开并通过不同的方法传递它。其次,使用相同的连接字符串(如果使用集成身份验证,则使用相同的线程标识)。如果您不使用相同的连接字符串,例如根据登录用户自定义连接字符串,您将无法获得连接池提供的相同优化值。如果您在模拟大量用户时使用集成身份验证,您的池也会效率低下。
确保关闭连接并再次使用相同的连接字符串是连接池的关键。 IIS 将缓存连接并重新使用它(本质上)。
答案2
为了使计数器启动并用于 ODBC 连接池,您必须在 ODBC 控制面板中启用性能监视器:
- 转到控制面板
- 管理工具
- 数据源 (ODBC)
- 连接池选项卡
- 启用“性能监视器”