개발 모드에서 웹 응용 프로그램을 실행하려면 maven-jetty-plugin
을 사용하고 있습니다. 또한, 나는 jetty-env.xml
에서 C3P0의 JNDI 데이터 소스를 구성이 잘 작동하지만웹 응용 프로그램 컨텍스트가 닫힐 때의 폐차 데이터 소스 닫기
<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" "http://jetty.mortbay.org/configure.dtd">
<Configure id="wac" class="org.mortbay.jetty.webapp.WebAppContext">
<New id="dataSource" class="org.mortbay.jetty.plus.naming.Resource">
<Arg>
<Ref id="wac" />
</Arg>
<Arg>jdbc/MyVeryOwnDB</Arg>
<Arg>
<New class="com.mchange.v2.c3p0.ComboPooledDataSource">
<Set name="driverClass">oracle.jdbc.driver.OracleDriver</Set>
<Set name="jdbcUrl">jdbc:oracle:thin:@X:Y:Z</Set>
<Set name="user">U</Set>
<Set name="password">P</Set>
</New>
</Arg>
</New>
</Configure>
, 나는 연결 풀은 웹 애플리케이션 재배포를 종료하지 않은 것으로 나타났습니다 - C3P0 스레드 내가 얻을 것을 의미합니다, 아직 살아있다 PermGen 및 JDBC 연결 누출.
jetty-env.xml에서 정의 된 자원을 삭제하는 것에 대한 참조가 발견되지 않았으며, 제작 설정이 다르기 때문에 개발 전용 후크를 넣는 것도 부끄러워합니다.
개발 시간에 응용 프로그램을 재배포 할 때 연결 풀이 닫히지 않아 누수가 발생하지 않도록하려면 어떻게해야합니까?