社区
C#
帖子详情
C#释放Oracle连接
caonimadigepi
2012-08-14 10:16:04
每次打开子窗体,Oracle会话数就会增加,但是关闭子窗体时,Oracle会话并不会减少,这样导致子窗体使用频率很高时,会话数会不停增加,直至达到Oracle最大进程数。在子窗体关闭事件里面调用Dispose()方法,会话也不会减少,只有在调用Application.Exit()方法退出整个应用程序时,Oracle才会释放会话。请问,有没有办法实现关闭子窗体时就释放相应的会话?谢谢!
...全文
385
8
打赏
收藏
C#释放Oracle连接
每次打开子窗体,Oracle会话数就会增加,但是关闭子窗体时,Oracle会话并不会减少,这样导致子窗体使用频率很高时,会话数会不停增加,直至达到Oracle最大进程数。在子窗体关闭事件里面调用Dispose()方法,会话也不会减少,只有在调用Application.Exit()方法退出整个应用程序时,Oracle才会释放会话。请问,有没有办法实现关闭子窗体时就释放相应的会话?谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qldsrx
2012-08-14
打赏
举报
回复
[Quote=引用 4 楼 的回复:]
引用 3 楼 的回复:
oracle那个会话并不是实时的,即使你程序中释放了,oracle系统中也要过一会才行。
请问Oracle要过多长时间才会释放?或者有没有让它立即释放的方法?
[/Quote]
立刻释放的,你看到的是一个缓存实例(即使过几天都不会再释放了),如果下次再新建一个连接,不会再有增加会话数的情况了,而是使用上次关闭的那个连接,这是默认的缓存模式,效率高,如果要取消缓存,那么每次关闭都要重新建立连接,效率很低,不推荐。
caonimadigepi
2012-08-14
打赏
举报
回复
[Quote=引用 3 楼 的回复:]
oracle那个会话并不是实时的,即使你程序中释放了,oracle系统中也要过一会才行。
[/Quote]
请问Oracle要过多长时间才会释放?或者有没有让它立即释放的方法?
baiwenyu
2012-08-14
打赏
举报
回复
oracle那个会话并不是实时的,即使你程序中释放了,oracle系统中也要过一会才行。
caonimadigepi
2012-08-14
打赏
举报
回复
[Quote=引用 1 楼 的回复:]
你必须手动调用Close方法来关闭连接,或者直接用using语句块创建连接,仅仅关闭窗口,连接是不会被关闭的,因为那个是非托管资源。
[/Quote]
调用了Close方法关闭连接,Oracle会话依然未被释放
qldsrx
2012-08-14
打赏
举报
回复
你必须手动调用Close方法来关闭连接,或者直接用using语句块创建连接,仅仅关闭窗口,连接是不会被关闭的,因为那个是非托管资源。
ljjk123
2012-08-14
打赏
举报
回复
连接 随查随开,查完就关 connection.close();
干嘛窗体一直连着呢
qldsrx
2012-08-14
打赏
举报
回复
OracleConnection.ClearAllPools()可以清空缓存的连接,但不推荐这么做。
另外子窗体关闭和销毁是两个不同的概念,你关闭窗体其实是隐藏窗体,并未真正关闭,请参考MSDN上的说法。
caonimadigepi
2012-08-14
打赏
举报
回复
我现在只想实现关闭子窗体时,把由这个子窗体产生的连接释放掉,都没有办法了么?
精通sql结构化查询语句
连接
查询 9.1 多表
连接
9.1.1 多表
连接
的优点 9.1.2 简单的两表
连接
9.1.3 多表
连接
举例 9.1.4 UNION JOIN
连接
表 9.2 自
连接
与自然
连接
9.2.1 自
连接
9.2.2 自然
连接
9.3 内
连接
9.3.1 等值
连接
9.3.2 不等值
连接
...
vc++ 应用源码包_1
演示了不同的数据库的各种操作(
连接
、删除、添加……等等) ATL开发指南源码 内部包含了atl控件的开发以及如何应用,演示了COM的包容与集合、自动化、事件和
连接
点、枚举器和集合以及线程管理等等。 ATL实现的...
vc++ 应用源码包_2
演示了不同的数据库的各种操作(
连接
、删除、添加……等等) ATL开发指南源码 内部包含了atl控件的开发以及如何应用,演示了COM的包容与集合、自动化、事件和
连接
点、枚举器和集合以及线程管理等等。 ATL实现的...
vc++ 应用源码包_6
演示了不同的数据库的各种操作(
连接
、删除、添加……等等) ATL开发指南源码 内部包含了atl控件的开发以及如何应用,演示了COM的包容与集合、自动化、事件和
连接
点、枚举器和集合以及线程管理等等。 ATL实现的...
vc++ 应用源码包_5
演示了不同的数据库的各种操作(
连接
、删除、添加……等等) ATL开发指南源码 内部包含了atl控件的开发以及如何应用,演示了COM的包容与集合、自动化、事件和
连接
点、枚举器和集合以及线程管理等等。 ATL实现的...
C#
110,536
社区成员
642,578
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章