dblink连接不关闭问题

buyaoyongdi1 2012-12-24 11:13:57
用的ssh,数据库是oracle,有一个方法查询了dblink,但是查询完后,连接一直没断开。导致连接数过多,最后无法连接,请问这是什么原因导致的呢?
...全文
481 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
je_gs 2012-12-25
  • 打赏
  • 举报
回复
嗯,注意,每次使用完对象后,就像文件流使用完后要关流一样,同样,db创建连接的对象也要关闭,不要让他占通道。
buyaoyongdi1 2012-12-25
  • 打赏
  • 举报
回复
是自动提交的,但是用for update会提交啊,但是用dblink就不提交了,事务一直开着,就锁死了.
笑莫问 2012-12-24
  • 打赏
  • 举报
回复
自己创建的链接,还是用的连接池,连接池一般都会帮你关掉连接的。
buyaoyongdi1 2012-12-24
  • 打赏
  • 举报
回复
用的声明式事务,自动提交事务的,我用的for update 能正常提交,但是dblink就一直占着连接在哪里,不提交也不回滚,这个怎么弄?
  • 打赏
  • 举报
回复
这问题问的,自己连接数据库,为什么没有关,看看自己的数据库代码不就明白了。
dracularking 2012-12-24
  • 打赏
  • 举报
回复
引用 2 楼 buyaoyongdi1 的回复:
用的声明式事务,自动提交事务的,我用的for update 能正常提交,但是dblink就一直占着连接在哪里,不提交也不回滚,这个怎么弄?
默认是自动提交的吧?是不是有定义过任何不自动提交的设置呢,或者有什么冲突,配置文件看看
buyaoyongdi1 2012-12-24
  • 打赏
  • 举报
回复
引用 5 楼 abcmsnet 的回复:
不过如果使用dblink,我们需要及时显示的关闭dblink。以下提供两种方式 alter sesssion close database link <dblink_name>; dbms_session.close_database_link(<dblink_name>);
这种方式是用在oracle的,在java中 不可能手动调用这些吧,既然都用了申明式事务了,就是为了不手动开启事务等操作了
  • 打赏
  • 举报
回复
不过如果使用dblink,我们需要及时显示的关闭dblink。以下提供两种方式 alter sesssion close database link <dblink_name>; dbms_session.close_database_link(<dblink_name>);
buyaoyongdi1 2012-12-24
  • 打赏
  • 举报
回复
用了dbcp连接池的。select * from table for update 这种查询语句没问题啊。但是查到dblink 就有问题了

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧