Закройте Jetty DataSources, когда контекст веб-приложения разрушен - PullRequest
1 голос
/ 26 ноября 2010

Я использую maven-jetty-plugin для запуска веб-приложения в режиме разработки.Кроме того, я настраиваю источник данных JNDI c3p0 в jetty-env.xml:

<?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>

Хотя это работает просто отлично, я заметил, что пул соединений не отключается при повторном развертывании webapp - потоки c3p0 все еще живы, чтоозначает, что я получаю утечку соединения как PermGen, так и JDBC.

Я не нашел ссылки на уничтожение определенных ресурсов в файле jetty-env.xml, и я также стесняюсь добавлять хуки только для разработки, так какпроизводственная настройка отличается.

Как я могу убедиться, что при повторном развертывании приложения во время разработки нет утечки, вызванной тем, что пул соединений не был закрыт?

1 Ответ

0 голосов
/ 13 декабря 2010

Ответ заключается в том, чтобы удалить ссылки из jetty-env.xml и , настроить дополнительный параметр jettyConfig , используя maven-jetty-plugin.

<!DOCTYPE Configure PUBLIC "-//Mort Bay Consulting//DTD Configure//EN" 
<Configure id="Server" class="org.mortbay.jetty.Server">
    <New id="dataSource" class="org.mortbay.jetty.plus.naming.Resource">
        <Arg></Arg> <!-- Global scope -->
        <!-- Other values elided for brevity -->
    </New>
</Configure>
...