最近在使用oracle的时候, 调用websever时报
1、超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。
2、While preparing an error occurred
其中找了很多的问题, 说要修改连接池个数, 其实不是, 肯定是我们程序在执行oracle查询操作时,未及时关闭连接, 造成的,解决方法如下 关闭当前连接connection.Close();, 问题就得到了解决
public int SqlExecuteNonQuery(String sql, params Object[] ps)
{
IDbConnection connection = SessionFactory.GetCurrentSession().Connection;
IDbCommand cmd = connection.CreateCommand();
cmd.CommandText = sql;
if (ps != null)
for (int i = 0; i < ps.Length; i++)
{
cmd.Parameters.Add(ps[i]);
}
int r =cmd.ExecuteNonQuery();
//连接池未关闭by lvmenglong 20180711
connection.Close();
return r;
}