想彻底弄好spring下hibernate的连接池配置

u

 

 

 

 

 

 

 

 

 

 

问题的起源在于:

javax.servlet.ServletException: Error creating bean with name 'sessionFactory' defined in class path resource [applicationContext.xml]: Initialization of bean failed; nested exception is java.lang.OutOfMemoryError: Java heap space
 出现此原因:网上的分析是使用Java程序从数据库中查询大量的数据时出现异常。

解决方法:1)

windows 更改系统环境变量
加上JAVA_OPTS=-Xms64m -Xmx512m
Linux  在{tomcat_home}/bin/catalina.sh的前面,加
set JAVA_OPTS='-Xms64 -Xmx512'

问题2:sleep连接不释放,占资源

分析其原因与其解决方法。

用MySQL Administrator工具查看健康度,mysql的sleep连接数达到mysql的最大连接数。连接使用率达到100%。从而其它的连接无法得到,程序出现崩溃。

javax.servlet.ServletException: Hibernate operation: Cannot open connection; uncategorized SQLException for SQL [???]; SQL state [null]; error code [0]; Connections could not be acquired from the underlying database!; nested exception is java.sql.SQLException: Connections could not be acquired from the underlying database

 

  <bean id="propertyConfigurer"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location">
            <value>classpath:jdbc.properties</value>
        </property>
    </bean>
< bean  id ="dataSource"  class ="com.mchange.v2.c3p0.ComboPooledDataSource" >
        
< property  name ="driverClass"  value ="com.mysql.jdbc.Driver"   />
        
< property  name ="jdbcUrl"  value ="${jdbc.url}"   />
        
< property  name ="user"  value ="${jdbc.username}"   />
        
< property  name ="password"  value ="${jdbc.password}"   />
        
< property  name ="autoCommitOnClose"  value ="true" />
        
< property  name ="checkoutTimeout"  value ="${cpool.checkoutTimeout}" />
        
< property  name ="initialPoolSize"  value ="${cpool.minPoolSize}" />
        
< property  name ="minPoolSize"  value ="${cpool.minPoolSize}" />
        
< property  name ="maxPoolSize"  value ="${cpool.maxPoolSize}" />
        
< property  name ="maxIdleTime"  value ="${cpool.maxIdleTime}" />
        
< property  name ="acquireIncrement"  value ="${cpool.acquireIncrement}" />
        
< property  name ="maxIdleTimeExcessConnections"  value ="${cpool.maxIdleTimeExcessConnections}" />
    
</ bean >

   -->
     
<!--  sessionFactory  -->
    
< bean  id ="sessionFactory"
        class
="org.springframework.orm.hibernate3.LocalSessionFactoryBean" >
     
        
< property  name ="dataSource" >
            
< ref  bean ="dataSource"   />
        
</ property >
        
         
< property  name ="mappingResources" >
            
< list >
                
< value > com/voff/pojo/User.hbm.xml </ value>
                
< value > com/voff/pojo/Blog.hbm.xml </ value >
                
< value > com/voff/pojo/Category.hbm.xml </ value >
            
</ list >
        
</ property >
        
< property  name ="hibernateProperties" >
            
< props >
                
< prop  key ="hibernate.dialect" >
                    org.hibernate.dialect.MySQLDialect
                
</ prop >
                
< prop  key ="hibernate.show_sql" >
                true
                
</ prop >
                
< prop  key ="hibernate.connection.provider_class" > org.hibernate.connection.C3P0ConnectionProvider </ prop >
                
</ props >
        
</ property >
    
</ bean >

另一配置:

 

# Database URL
jdbc.url
= jdbc:mysql://localhost/spring?useUnicode = true&amp ; characterEncoding=UTF-8

# Database login information
jdbc.username
= root
jdbc.password
=

# Time to wait for an open connection before timing out
# (in milliseconds)
cpool.checkoutTimeout
= 5000

# Connection pool size
cpool.minPoolSize
= 5
cpool.maxPoolSize
= 20

# How long to keep unused connections around(in seconds)
# Note: MySQL times out idle connections after 
8  hours( 28 , 800  seconds)
# so ensure this value is below MySQL idle timeout
cpool.maxIdleTime
= 25200

# How long to hang on to excess unused connections after traffic spike
# (in seconds)
cpool.maxIdleTimeExcessConnections
= 1800

# Acquiring new connections is slow
,  so eagerly retrieve extra connections
# when current pool size is reached
cpool.acquireIncrement
= 5
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值