数据库连接未关闭
我用以下代码访问了一下数据库,连接应该已经关闭,为什么查看V$Session中,连接还存在啊。
OracleConnection connection = new OracleConnection(connString);
OracleCommand command = new OracleCommand(Query, connection);
OracleDataAdapter adapter = new OracleDataAdapter(command);
connection.Open();
System.Data.DataSet myDataSet = new System.Data.DataSet();
adapter.Fill(myDataSet,"Results");
connection.Close();
------解决方案--------------------连接存在,只要没有Open就行了
------解决方案--------------------connection.Dispose();看看,应该就会释放了
------解决方案--------------------如果过程没有执行完的话,虽然连接已经关闭,但是连接是存在的,因为连接占用的资源没有被释放,你不必担心,如果不再使用,关闭后释放一下应该就行了。
------解决方案--------------------mark
------解决方案--------------------关闭语句写作finally中比较好吧。不管之前的数据库操作是否成功,都关闭数据库的连接。
------解决方案--------------------调用close和dispose含义是相同的,连接应该是关闭了的,除非中间出现异常了。你可以用Windows自带的Performance Monitor来看看连接的使用情况,这个可能跟Oracle里边session的概念不一样。
此外,你可以看看以下两篇文章:
http://support.microsoft.com/kb/830173
http://support.microsoft.com/kb/929449
------解决方案--------------------用一个异常检查下,看看会有什么样的效果。
异常之前用
if()
……
try……
……
catch……
这样就比较容易的检查出问题的所在了!
------解决方案--------------------没关系的吧
------解决方案--------------------up
------解决方案--------------------有可能跟缓存有关
------解决方案--------------------connection是有的,关后就会放在应用程序池里了,只要不是Open就可以