换个名字777 2016-05-31 08:16 采纳率: 0%
浏览 2476
已结题

web项目 hibernate+spring 一段时间后访问数据库超时

加缓存 过一天左右无法连接数据库,不加缓存 几分钟就不行了,缓存有没有需要修改的地方
<?xml version="1.0" encoding="UTF-8"?>

<diskStore path="java.io.tmpdir/hibernate/user" />

<!-- DefaultCache setting. -->
<defaultCache maxElementsInMemory="10000" memoryStoreEvictionPolicy="LRU" eternal="false"
    timeToIdleSeconds="300" timeToLiveSeconds="300" overflowToDisk="false" diskPersistent="false" />

<!-- Special objects setting. -->

<cache name="org.hibernate.cache.UpdateTimestampsCache" maxElementsInMemory="10000"
    memoryStoreEvictionPolicy="LRU" eternal="true" diskPersistent="false" overflowToDisk="true" maxElementsOnDisk="1000000" />
<cache name="org.hibernate.cache.StandardQueryCache" maxElementsInMemory="10000"
    memoryStoreEvictionPolicy="LRU" eternal="true" diskPersistent="false" overflowToDisk="true" maxElementsOnDisk="1000000" />

</ehcache>

个人感觉是连接池配置问题,请各位帮忙看看配置有没有问题

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
    destroy-method="close">

    <property name="driverClassName" value="${jdbc.driver}" />
    <property name="url" value="${jdbc.url}" />
    <property name="username" value="${jdbc.username}" />
    <property name="password" value="${jdbc.password}" />


      <!--initialSize: 初始化连接-->  
    <property name="initialSize" value="15"></property>
     <!--minIdle: 最小空闲连接--> 
    <property name="minIdle" value="5" />
     <!--minIdle: 最大空闲连接--> 
    <property name="maxIdle" value="20" />
     <!--maxActive: 最大连接数量-->    
    <property name="maxActive" value="300" />
     <!--maxWait: 超时等待时间以毫秒为单位 1000等于60秒-->  
    <property name="maxWait" value="1000"/>  
     <!--removeAbandoned: 是否自动回收超时连接-->   
     <property name="removeAbandoned"  value="true"/> 

    <property name="defaultAutoCommit" value="false" />
    <property name="timeBetweenEvictionRunsMillis" value="10000" />
    <property name="minEvictableIdleTimeMillis" value="60000" />
</bean>

<!-- Hibernate配置 -->
<bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="hibernateProperties">
        <props>
            <!--  <prop key="hibernate.hbm2ddl.auto">update</prop> --> 
            <prop key="hibernate.dialect">${hibernate.dialect}</prop>
            <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
            <!--<prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
            <prop key="hibernate.cache.provider_configuration_file_resource_path">ehcache/ehcache-hibernate-local.xml</prop>
            <prop key="hibernate.cache.use_second_level_cache">true</prop> 
            <prop key="hibernate.cache.use_query_cache">true</prop>
        --></props>
    </property>

    <property name="packagesToScan" value="com.usci" ></property>

</bean>
  • 写回答

2条回答 默认 最新

  • 斯密德 2016-05-31 10:12
    关注

    1,网络问题
    2,数据库连接池再发生异常时候没有关闭处理。

    评论

报告相同问题?

悬赏问题

  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?