2012-04-27 4 views
2

환경 : 서버 : 우리는 연결 풀링에 대한 C3P0 0.9.1.2을 사용하는메모리 누수 - java.lang.NoClassDefFoundError가 : COM/mchange/V2/resourcepool/BasicResourcePool

제이 보스 4.2.3.GA.

언제든지 핫스왑 Jboss AS의 war 파일에 c3p0에서 메모리 누수가 발생합니다. 결국 "java.lang.OutOfMemoryError : PermGen space" 오류가 발생합니다. 응용 프로그램 서버를 강제로 다시 시작해야합니다.

이 문제가 발생한 사람이 있습니까? 이 문제에 대한 해결 방법이 있습니까?

14:50:16,097 INFO [WebappClassLoader] Illegal access: this web application instance has been stopped already. Could not load com.mchange.v2.resourcepool.BasicResourcePool$1DestroyResourceTask. The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact. 
java.lang.IllegalStateException 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1244) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204) 
    at com.mchange.v2.resourcepool.BasicResourcePool.destroyResource(BasicResourcePool.java:980) 
    at com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:1406) 
    at com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:1378) 
    at com.mchange.v2.resourcepool.BasicResourcePool.cullExpired(BasicResourcePool.java:1462) 
    at com.mchange.v2.resourcepool.BasicResourcePool.access$1900(BasicResourcePool.java:32) 
    at com.mchange.v2.resourcepool.BasicResourcePool$CullTask.run(BasicResourcePool.java:1937) 
    at java.util.TimerThread.mainLoop(Timer.java:512) 
    at java.util.TimerThread.run(Timer.java:462) 
14:50:22,328 ERROR [STDERR] Exception in thread "Timer-5" 
14:50:22,329 ERROR [STDERR] java.lang.NoClassDefFoundError: com/mchange/v2/resourcepool/BasicResourcePool$1DestroyResourceTask 
14:50:22,329 ERROR [STDERR]  at com.mchange.v2.resourcepool.BasicResourcePool.destroyResource(BasicResourcePool.java:980) 
14:50:22,329 ERROR [STDERR]  at com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:1406) 
14:50:22,329 ERROR [STDERR]  at com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:1378) 
14:50:22,329 ERROR [STDERR]  at com.mchange.v2.resourcepool.BasicResourcePool.cullExpired(BasicResourcePool.java:1462) 
14:50:22,329 ERROR [STDERR]  at com.mchange.v2.resourcepool.BasicResourcePool.access$1900(BasicResourcePool.java:32) 
14:50:22,329 ERROR [STDERR]  at com.mchange.v2.resourcepool.BasicResourcePool$CullTask.run(BasicResourcePool.java:1937) 
14:50:22,329 ERROR [STDERR]  at java.util.TimerThread.mainLoop(Timer.java:512) 
14:50:22,329 ERROR [STDERR]  at java.util.TimerThread.run(Timer.java:462) 
14:50:22,329 ERROR [STDERR] Caused by: java.lang.ClassNotFoundException: com.mchange.v2.resourcepool.BasicResourcePool$1DestroyResourceTask 
14:50:22,329 ERROR [STDERR]  at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358) 
14:50:22,329 ERROR [STDERR]  at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204) 
14:50:22,329 ERROR [STDERR]  ... 8 more 
14:50:23,081 ERROR [STDERR] Exception in thread "Timer-6" 
14:50:23,082 ERROR [STDERR] java.lang.NoClassDefFoundError: com/mchange/v2/resourcepool/BasicResourcePool$1DestroyResourceTask 
14:50:23,082 ERROR [STDERR]  at com.mchange.v2.resourcepool.BasicResourcePool.destroyResource(BasicResourcePool.java:980) 
14:50:23,082 ERROR [STDERR]  at com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:1406) 
14:50:23,082 ERROR [STDERR]  at com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:1378) 
14:50:23,082 ERROR [STDERR]  at com.mchange.v2.resourcepool.BasicResourcePool.cullExpired(BasicResourcePool.java:1462) 
14:50:23,082 ERROR [STDERR]  at com.mchange.v2.resourcepool.BasicResourcePool.access$1900(BasicResourcePool.java:32) 
14:50:23,082 ERROR [STDERR]  at com.mchange.v2.resourcepool.BasicResourcePool$CullTask.run(BasicResourcePool.java:1937) 
14:50:23,082 ERROR [STDERR]  at java.util.TimerThread.mainLoop(Timer.java:512) 
14:50:23,083 ERROR [STDERR]  at java.util.TimerThread.run(Timer.java:462) 
14:51:59,105 INFO [WebappClassLoader] Illegal access: this web application instance has been stopped already. Could not load com.mchange.v2.resourcepool.BasicResourcePool$1DestroyResourceTask. The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact. 
java.lang.IllegalStateException 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1244) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204) 
    at com.mchange.v2.resourcepool.BasicResourcePool.destroyResource(BasicResourcePool.java:980) 
    at com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:1406) 
    at com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:1378) 
    at com.mchange.v2.resourcepool.BasicResourcePool.cullExpired(BasicResourcePool.java:1462) 
    at com.mchange.v2.resourcepool.BasicResourcePool.access$1900(BasicResourcePool.java:32) 
    at com.mchange.v2.resourcepool.BasicResourcePool$CullTask.run(BasicResourcePool.java:1937) 
    at java.util.TimerThread.mainLoop(Timer.java:512) 
    at java.util.TimerThread.run(Timer.java:462) 
^[[1;2C14:56:03,597 ERROR [STDERR] Exception in thread "Timer-11" 
14:56:03,598 ERROR [STDERR] java.lang.NoClassDefFoundError: com/mchange/v2/resourcepool/BasicResourcePool$1DestroyResourceTask 
14:56:03,598 ERROR [STDERR]  at com.mchange.v2.resourcepool.BasicResourcePool.destroyResource(BasicResourcePool.java:980) 
14:56:03,598 ERROR [STDERR]  at com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:1406) 
14:56:03,598 ERROR [STDERR]  at com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:1378) 
14:56:03,598 ERROR [STDERR]  at com.mchange.v2.resourcepool.BasicResourcePool.cullExpired(BasicResourcePool.java:1462) 
14:56:03,598 ERROR [STDERR]  at com.mchange.v2.resourcepool.BasicResourcePool.access$1900(BasicResourcePool.java:32) 
14:56:03,598 ERROR [STDERR]  at com.mchange.v2.resourcepool.BasicResourcePool$CullTask.run(BasicResourcePool.java:1937) 
Listening for transport dt_socket at address: 8787 
14:56:03,598 ERROR [STDERR]  at java.util.TimerThread.mainLoop(Timer.java:512) 
14:56:03,598 ERROR [STDERR]  at java.util.TimerThread.run(Timer.java:462) 
14:56:03,598 ERROR [STDERR] Exception in thread "Timer-10" 
14:56:03,607 ERROR [STDERR] java.lang.NoClassDefFoundError: com/mchange/v2/resourcepool/BasicResourcePool$1DestroyResourceTask 
14:56:03,607 ERROR [STDERR]  at com.mchange.v2.resourcepool.BasicResourcePool.destroyResource(BasicResourcePool.java:980) 
14:56:03,607 ERROR [STDERR]  at com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:1406) 
14:56:03,607 ERROR [STDERR]  at com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:1378) 
14:56:03,607 ERROR [STDERR]  at com.mchange.v2.resourcepool.BasicResourcePool.cullExpired(BasicResourcePool.java:1462) 
14:56:03,607 ERROR [STDERR]  at com.mchange.v2.resourcepool.BasicResourcePool.access$1900(BasicResourcePool.java:32) 
14:56:03,607 ERROR [STDERR]  at com.mchange.v2.resourcepool.BasicResourcePool$CullTask.run(BasicResourcePool.java:1937) 
14:56:03,607 ERROR [STDERR]  at java.util.TimerThread.mainLoop(Timer.java:512) 
14:56:03,607 ERROR [STDERR]  at java.util.TimerThread.run(Timer.java:462) 
14:56:03,607 ERROR [STDERR] Exception in thread "Timer-9" 
14:56:03,607 ERROR [STDERR] java.lang.NoClassDefFoundError: com/mchange/v2/resourcepool/BasicResourcePool$1DestroyResourceTask 
14:56:03,607 ERROR [STDERR]  at com.mchange.v2.resourcepool.BasicResourcePool.destroyResource(BasicResourcePool.java:980) 
14:56:03,607 ERROR [STDERR]  at com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:1406) 
14:56:03,607 ERROR [STDERR]  at com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:1378) 
14:56:03,607 ERROR [STDERR]  at com.mchange.v2.resourcepool.BasicResourcePool.cullExpired(BasicResourcePool.java:1462) 
14:56:03,607 ERROR [STDERR]  at com.mchange.v2.resourcepool.BasicResourcePool.access$1900(BasicResourcePool.java:32) 
14:56:03,607 ERROR [STDERR]  at com.mchange.v2.resourcepool.BasicResourcePool$CullTask.run(BasicResourcePool.java:1937) 
14:56:03,607 ERROR [STDERR]  at java.util.TimerThread.mainLoop(Timer.java:512) 
14:56:03,607 ERROR [STDERR]  at java.util.TimerThread.run(Timer.java:462) 
14:56:03,607 ERROR [STDERR] Caused by: java.lang.ClassNotFoundException: com.mchange.v2.resourcepool.BasicResourcePool$1DestroyResourceTask 
14:56:03,607 ERROR [STDERR]  at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358) 
14:56:03,607 ERROR [STDERR]  at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204) 
14:56:03,607 ERROR [STDERR]  ... 8 more 

답변

5

Whenever we hot-deploy war files in Jboss AS are encountering the memory leak from c3p0.

는 제이 보스 4.2 핫 배포 (또는 보스의 다른 버전), 당신은 결국 PermGen 풀에서 메모리 누수가 경우 서버가 필요합니다 다음과 같이

스택 트레이스는 재시작. 내가 알고있는 해결 방법은 없으며 c3p0과 관련이 없습니다.

개발 과정에서 이것은 약간의 성가심 일뿐입니다. 프로덕션에서는 전혀하지 않아야합니다.

+2

누군가 Aaaand가 뭔가를해야합니다. 그러나 그 긴 토론. – Mindwin

+0

나는 아무도 그것에 대해 무언가를 할 것이라고 믿는다. 나는 지금 mongodb를 사용하고있어서 기쁘다. – aspdeepak