Ami*_*Ami 6 .net oracle iis-7 connection-pooling odp.net
我在IIS 7上托管了一个Web应用程序,使用Oracle.DataAcess.dll for .NET来执行与Oracle数据库的连接和查询.在上周,我们突然遇到了这个组件抛出的大量错误,说:"连接请求超时了."
经过几个小时的调试,我发现错误实际上是说连接请求已超时,并抛出一个代码为-1000的错误(oracle.DataAccess,没有抛出ORA-错误).在Oracle数据库中,我看到该机器只有一个连接,并且处于"非活动"状态.虽然只有一个连接,但在调试时它实际上在尝试打开连接时超时.
我们不使用连接池策略,但正如我在调试模式中看到的那样,有一个默认连接池(即使没有指定值)表示最大连接数为100,超时时间为15秒,并且生命周期为0.这意味着该计算机上的应用程序可以处理100个连接.
话虽如此,我无法弄清楚为什么我得到"连接请求超时".错误,错误代码= -1000,当我的应用程序可以创建多达100个连接时(根据默认连接池的设置),但我的数据库只显示几个连接(当我的应用程序有一个连接时也发生了5个连接 - 满分100).
我会注意到我能够在回收我的应用程序之后专门解决这个问题,但这已经不止一次发生,所以这不是解决方案...
这是我缺少的东西吗?
我的应用程序实际上使用的连接比我看到的多吗?
*更新: 我在调试期间发现Oracle.DataAccess的'PopulatePool'方法中存在很多线程,而且许多其他线程都停留在'WaitForRegularConnection'方法中...
| 归档时间: |
|
| 查看次数: |
3241 次 |
| 最近记录: |