iis+oracle+连接池超时,c# – Oracle Data Provider for .NET:连接请求超时
我们在Windows 2008 SP2 / IIS 7上托管了一个访问Oracle数据库的C#WCF Web服务.通常数据访问工作正常,但在负载测试期间,它经常超时并记录和异常说:Error occurred when processing XXXXXXXX Web ServiceOracle.DataAccess.Client.OracleException Connection request
我们在
Windows 2008 SP2 / IIS 7上托管了一个访问Oracle数据库的C#WCF Web服务.通常数据访问工作正常,但在负载测试期间,它经常超时并记录和异常说:
Error occurred when processing XXXXXXXX Web Service
Oracle.DataAccess.Client.OracleException Connection request timed out at Oracle.DataAccess.Client.OracleException.HandleErrorHelper(Int32 errCode,OracleConnection conn,IntPtr opsErrCtx,OposqlValCtx* pOposqlValCtx,Object src,String procedure,Boolean bCheck)
at Oracle.DataAccess.Client.OracleException.HandleError(Int32 errCode,Object src)
at Oracle.DataAccess.Client.OracleConnection.Open()
at MyWorkspace.WorkForceDataAccess.CheckStaffIdInRSW()
at MyWorkspace.MyClass.MyFunction(MyDataType MyData)
要查询数据库,我们使用以下内容:
OracleConnection orConn = new OracleConnection();
orConn.ConnectionString = "user id=xxx; password=xxx; Connection Timeout=600; Max Pool Size=150; data source= (DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = MYHOST.MYDOMAIN.com)(PORT = 1771)) (CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = MYSERVICE.MYDOMAIN.com)))";
orConn.Open();
using (var cmd = new OracleCommand("MY_UTIL.check_StaffIdInRSW",orConn) { CommandType = CommandType.StoredProcedure })
{
cmd.Parameters.Add("P_Staff_Id",OracleDbType.Int32);
cmd.Parameters["P_Staff_Id"].Direction = ParameterDirection.Input;
cmd.Parameters["P_Staff_Id"].Value = Convert.ToInt32(MyDataObject.StaffId);
cmd.Parameters.Add("P_retvalue",OracleDbType.Int32);
cmd.Parameters["P_retvalue"].Direction = ParameterDirection.Output;
cmd.ExecuteNonQuery(); // Execute the function
//obtain result
returnVal = int.Parse(cmd.Parameters["P_retvalue"].Value.ToString());
}
我非常确信正在调用的存储过程不会占用所有时间.这是一个非常简单的过程,可以快速检查表中是否存在P_Staff_Id并返回结果.
此外,这仅在负载测试期间发生.在正常操作期间,事情很好,但在重载期间每秒有1条消息,这会在平稳运行一段时间后发生.
作为一种解决方法,我在连接字符串中添加了“连接超时= 600;最大池大小= 150”,但这并没有解决问题.
我们在开发服务器上运行相同的应用程序,它工作正常.我们从未遇到过这个问题.
任何关于尝试什么的建议将不胜感激.看起来我的选项已经用完了.
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)