首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >内存泄漏- com.mysql.jdbc.ConnectionPropertiesImpl$*ANY*ConnectionProperty

内存泄漏- com.mysql.jdbc.ConnectionPropertiesImpl$*ANY*ConnectionProperty
EN

Stack Overflow用户
提问于 2010-10-14 21:55:41
回答 1查看 2.4K关注 0票数 8

我似乎有一个内存泄漏,其中一个罪魁祸首似乎是ConnectionProperty,无论是字符串,Int还是布尔型。例如:com.mysql.jdbc.ConnectionPropertiesImpl$BooleanConnectionProperty,数以百万计的人似乎呆在这里,而不是被GC控制。

以下是我对DB、会话工厂、Hibernate和池等的设置:

代码语言:javascript
运行
复制
<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>

切入点是:"execution(* com.package.data.(.))“。我删掉了任何明显的名字等等。

就像我说的,我们只是在堆里收集了数百个没有收集到的东西,我不知道为什么,也不知道从哪里开始寻找。

该应用程序是通过WAR部署的,DB驱动程序驻留在Tomcat共享的lib目录中。我们正在运行Tomcat6或tcServer,但两者都显示出相同的问题。

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2011-07-01 04:25:59

试试这两种:

grow?

  • Depending

  • 将连接池min/max设置为0或1。它是否仍在分析器工具上跟踪从对象到其GC根的路径。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3937922

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档