【发布时间】:2011-10-09 13:01:08
【问题描述】:
一段时间后会显示以下错误页面。
我能做些什么来防止这种情况发生?
我有大量用户,该应用使用 Oracle 11g。请建议我池大小,以便可以扩展默认最大池大小为 100。
我已检查所有连接是否正确关闭。我在我的应用程序中使用OracleDataReader 和Datatable 我使用的方法如下:
public OracleDataReader BidNoIncr()
{
OracleConnection objOracleConnection = new OracleConnection(objDBClass.GetConnSring());
OracleDataReader objDataReader;
string strQuery = "Select max(BID_NO)+1 as SNumber from HH_BIDS";
OracleCommand objOracleCommand = new OracleCommand(strQuery, objOracleConnection);
objOracleConnection.Open();
objDataReader = objOracleCommand.ExecuteReader(System.Data.CommandBehavior.CloseConnection);
return objDataReader;
超时。在获得一个之前的超时时间 来自池的连接。这可能是因为所有汇集的 连接正在使用中并且已达到最大池大小。描述: 当前执行期间发生未处理的异常 网络请求。请查看堆栈跟踪以获取有关的更多信息 错误及其起源于代码的位置。
异常详细信息:System.InvalidOperationException:超时已过期。 在从 水池。这可能是因为所有池连接都在 已达到使用和最大池大小。
源错误:在执行过程中产生了未处理的异常 执行当前的 Web 请求。有关原产地的信息 可以使用异常来识别异常的位置和位置 下面的堆栈跟踪。
堆栈跟踪:
[InvalidOperationException:超时已过期。超时时间 在从池中获取连接之前经过。这可能有 发生是因为所有池连接都在使用中并且最大池大小 已到达。]
System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection 拥有连接)+309609
System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) +125
System.Data.OracleClient.OracleConnection.Open() +43
DbClass.GetConnSring() +58 DBViewRec.ViewSalvageItems() +53
viewsalvageitems.ShowRecords() +44
viewsalvageitems.Page_Load(Object sender, EventArgs e) +5
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp,对象 o,对象 t,EventArgs e) +14
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(对象发送者, EventArgs e) +35 System.Web.UI.Control.OnLoad(EventArgs e) +91
System.Web.UI.Control.LoadRecursive() +74
System.Web.UI.Page.ProcessRequestMain(布尔值 includeStagesBeforeAsyncPoint,布尔型 includeStagesAfterAsyncPoint) +2207
【问题讨论】:
-
您是否在使用完连接对象后将其丢弃?