<2005-6-20 下午20时08分20秒 CST> <Warning> <JDBC> <BEA-001074> <A JDBC pool conn
ection leak was detected. A connection leak occurs when a connection obtained fr
om the pool was not closed explicitly by calling close() and then was disposed b
y the garbage collector and returned to the connection pool. The following stack
trace at create shows where the leaked connection was created. [Null exception
passed, creating stack trace for offending caller]
at weblogic.utils.StackTraceUtils.throwable2StackTrace(StackTraceUtils.j
ava:28)
at weblogic.jdbc.wrapper.PoolConnection.finalize(PoolConnection.java:77)
at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method)
at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:83)
at java.lang.ref.Finalizer.access$100(Finalizer.java:14)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:160)
>
说我有个地方没有关闭,但我查了所有的程序都没有发现没有关闭。
我用在try-catch-finally中的finally关闭的。
有的时候,这个警告在循环中出现:就是当我定义一个
ResultSet set = dbfunction.executeQuery(selectText);
时候在循环:
while(set.next()) {
………………
………………
}
出现。而且有的时候,我在Weblogic中Redeploy时候也出现异常。还有更怪的是,有时候,运行时,没有操作,突然跳出异常!!!!怪!!!
15 个解决方案
#1
关注一下
除了con,statement,rs是不是都关闭了?
除了con,statement,rs是不是都关闭了?
#2
都关闭了,但还是出现异常!!!
#3
没遇到过,帮你顶!
#4
我有的是8.12没有遇到过这些问题,我想应该是程序某个地方出异常了吧,仔细调试一下试试
#5
调试了好长时间了,但还是有问题啊,我用的是weblogic 8.1。
不知道为什么!!!
不知道为什么!!!
#6
刚在8.12 下测试,如果有意不关conn 就会出现你所描述的问题了,关闭则没有,应该是程序的问题,从打开到关闭看一遍应该就可以找出来了吧
#7
但是在循环中怎么还会出现这样的错误呢??
#8
你要好好看一下ResultSet 也是需要释放空间的,
你在使用完了吧ResultSet 管了就行了
你在使用完了吧ResultSet 管了就行了
#9
在循环
while(set.next()) {
………………
………………
}
中出现上述警告,还在用呢,怎么能关呢!
循环后才能关闭啊!
while(set.next()) {
………………
………………
}
中出现上述警告,还在用呢,怎么能关呢!
循环后才能关闭啊!
#10
感觉用jdbc的话,一定要判断好,是不是到表尾了,用rs.next()肯定要异常的(至少连接ACESS)是这样,没得救的。别的数据库不清楚!
我一般都是先计算有多少记录,然后再做循环的。。
我一般都是先计算有多少记录,然后再做循环的。。
#11
我的异常还没有到表尾就出现警告了!!!
#12
我用的weblogic 也出现这个问题了
但是没有找到没有close的东西
但是没有找到没有close的东西
#13
我这里也是的,不知道为什么!急!!!
#14
我猜想是不是程序某个地方在异常处理中没有关闭数据库链接,那么就会每出现一次异常就泄漏一个链接。你可以使用FINALLY。
#15
我已经在finally中关闭了!
问题解决了,问题出在当一个页面两次调用执行语句时候,第一次只关闭了stmt,
而没有关闭con,第二次才关闭con。
呵呵……
谢谢各位了!!!
问题解决了,问题出在当一个页面两次调用执行语句时候,第一次只关闭了stmt,
而没有关闭con,第二次才关闭con。
呵呵……
谢谢各位了!!!
#1
关注一下
除了con,statement,rs是不是都关闭了?
除了con,statement,rs是不是都关闭了?
#2
都关闭了,但还是出现异常!!!
#3
没遇到过,帮你顶!
#4
我有的是8.12没有遇到过这些问题,我想应该是程序某个地方出异常了吧,仔细调试一下试试
#5
调试了好长时间了,但还是有问题啊,我用的是weblogic 8.1。
不知道为什么!!!
不知道为什么!!!
#6
刚在8.12 下测试,如果有意不关conn 就会出现你所描述的问题了,关闭则没有,应该是程序的问题,从打开到关闭看一遍应该就可以找出来了吧
#7
但是在循环中怎么还会出现这样的错误呢??
#8
你要好好看一下ResultSet 也是需要释放空间的,
你在使用完了吧ResultSet 管了就行了
你在使用完了吧ResultSet 管了就行了
#9
在循环
while(set.next()) {
………………
………………
}
中出现上述警告,还在用呢,怎么能关呢!
循环后才能关闭啊!
while(set.next()) {
………………
………………
}
中出现上述警告,还在用呢,怎么能关呢!
循环后才能关闭啊!
#10
感觉用jdbc的话,一定要判断好,是不是到表尾了,用rs.next()肯定要异常的(至少连接ACESS)是这样,没得救的。别的数据库不清楚!
我一般都是先计算有多少记录,然后再做循环的。。
我一般都是先计算有多少记录,然后再做循环的。。
#11
我的异常还没有到表尾就出现警告了!!!
#12
我用的weblogic 也出现这个问题了
但是没有找到没有close的东西
但是没有找到没有close的东西
#13
我这里也是的,不知道为什么!急!!!
#14
我猜想是不是程序某个地方在异常处理中没有关闭数据库链接,那么就会每出现一次异常就泄漏一个链接。你可以使用FINALLY。
#15
我已经在finally中关闭了!
问题解决了,问题出在当一个页面两次调用执行语句时候,第一次只关闭了stmt,
而没有关闭con,第二次才关闭con。
呵呵……
谢谢各位了!!!
问题解决了,问题出在当一个页面两次调用执行语句时候,第一次只关闭了stmt,
而没有关闭con,第二次才关闭con。
呵呵……
谢谢各位了!!!