Утечка памяти - com.mysql.jdbc .ConnectionPropertiesImpl $ * ANY * ConnectionProperty

Похоже, у меня утечка памяти, одним из виновников является ConnectionProperty, будь то String, Int или Boolean. например: com.mysql.jdbc.ConnectionPropertiesImpl $ BooleanConnectionProperty , миллионы, похоже, остаются и не собираются сборщиками мусора.

Вот мои настройки для DB, Session Factory, Hibernate и Pooling и т. д. .:

<bean id="dataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url"
        value="jdbc:mysql://${dbHostName}:${database.port}/${database.name}" />
    <property name="username" value="${database.username}" />
    <property name="password" value="${database.password}" />
</bean>
<bean id="txManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
</bean>
<aop:config>
            <aop:pointcut id="pcut" expression="execution(* com.package.data..*.*(..))"/>
    <aop:advisor advice-ref="txAdvice" ref="pcut" />
</aop:config>
<tx:advice id="txAdvice" transaction-manager="txManager">
    <tx:attributes>
        <tx:method name="*" propagation="REQUIRED" />
    </tx:attributes>
</tx:advice>


<bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
            <prop key="current_session_context_class">thread</prop>
            <prop key="cache.provider_class">org.hibernate.cache.NoCacheProvider</prop>
            <prop key="hibernate.show_sql">false</prop>
            <prop key="hibernate.connection.release_mode">after_transaction</prop>

            <prop key="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</prop>
            <prop key="c3p0.acquire_increment">1</prop>
            <prop key="c3p0.min_size">20</prop>
            <prop key="c3p0.max_size">200</prop>
            <prop key="c3p0.timeout">300</prop>
            <prop key="c3p0.max_statements">50</prop>
            <prop key="c3p0.idle_test_period">300</prop>

            <prop key="hibernate.generate_statistics">true</prop>

        </props>
    </property>
    <property name="annotatedClasses">
        <list>
            <value>...beans...</value>
        </list>
    </property>
</bean>

Pointcut: "выполнение (* com.package.data .. . (..))". Я вычеркнул все очевидные имена и т. Д.

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

] Приложение развертывается с помощью WAR, а драйвер БД находится в общем каталоге lib Tomcats. Мы запускаем Tomcat6 или tcServer, но оба показывают одни и те же проблемы.

Есть идеи?

8
задан Gray 5 September 2014 в 21:05
поделиться