OracleDataAdapter,没有命令超时和填充方法挂起

问题描述

我有一个使用 .NET Framework 3.5 和 ODP.NET 托管驱动程序 (Oracle.DataAccess.dll 2.112.3.0) 的 VB 程序,该程序连接到远程服务器(认为池化)以查询数据。

我已将 CommandTimeout 指定为 5 秒并尝试查询需要大约 10 秒才能完成的数据。但是 OracleDataAdapter 在连接到远程服务器时不会抛出 sql 超时错误。同时 OracleDataAdapter 在连接到本地数据库时会抛出 sql 超时错误。看起来 CommandTimeout 对远程服务器不起作用。如何使 CommandTimeout 工作到远程服务器?

一个问题是程序在执行方法期间互联网连接丢失时卡在填充方法中。将 CommandTimeout 设置为 60 秒不起作用。为什么在查询数据期间连接丢失时 CommandTimeout 不起作用? 包含的代码

Dim connection As OracleConnection = New OracleConnection(connectionstring)  
Dim oracleDataAdapter As New OracleDataAdapter(connection.CreateCommand())
Dim dataset as New DataSet
Try
 oracleDataAdapter.SelectCommand.AddToStatementCache = False
 oracleDataAdapter.SelectCommand.NotificationAutoEnlist = False
 oracleDataAdapter.SelectCommand.CommandTimeout = 60
 oracleDataAdapter.SelectCommand.CommandText = str_sql
 Dim int_Count As Integer = oracleDataAdapter.Fill(dataset,table)
 Return int_Count
Catch
 Throw
Finally
 Dataset.dispose()
 oracleDataAdapter.dispose()
End Try

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)