解决risefile控件经常出现《保存文件失败could not execute query》的问题

问题:

附件控件在使用一段时间后,出现“保存文件失败could not execute query”,报如下错误:

2009-10-28 10:24:57,592 WARN  (JDBCExceptionReporter.java:71) - SQL Error: 17008, SQLState: 99999
2009-10-28 10:24:57,592 ERROR (JDBCExceptionReporter.java:72) - 关闭的连接
2009-10-28 10:24:57,593 WARN  (JDBCExceptionReporter.java:71) - SQL Error: 17008, SQLState: 99999
2009-10-28 10:24:57,594 ERROR (JDBCExceptionReporter.java:72) - 关闭的连接
2009-10-28 10:24:57,594 INFO  (SysAbstractFileManager.java:93) - could not execute query
org.hibernate.exception.GenericJDBCException: could not execute query

原因:

hibernate默认的连接池有问题,最好使用c3p0连接池

解决方法:

将HibernateFactory中

  config.setProperty("hibernate.proxool.pool_alias","pool1")
    .setProperty("hibernate.jdbc.batch_size","25")
    .setProperty("hibernate.cache.use_query_cache","true")
    .setProperty("show_sql","true")
    .setProperty("hibernate.hbm2ddl.auto","update")
    .setProperty("hibernate.query.factory_class","org.hibernate.hql.classic.ClassicQueryTranslatorFactory")
    .addClass(net.risesoft.components.risefile.RiseFile.class);

替换为:

  config.setProperties("hibernate.connection.provider_class","org.hibernate.connection.C3P0ConnectionProvider")
  .setProperty("hibernate.c3p0.max_size","25")
  .setProperty("hibernate.c3p0.min_size","5")
  .setProperty("hibernate.c3p0.timeout","120")
  .setProperty("hibernate.c3p0.max_statements","100")
  .setProperty("hibernate.c3p0.idle_test_period","120")
  .setProperty("hibernate.c3p0.acquire_increment","2")
  .setProperty("show_sql","true")
  .setProperty("hibernate.hbm2ddl.auto","update")
  .setProperty("hibernate.query.factory_class","org.hibernate.hql.classic.ClassicQueryTranslatorFactory")
  .addClass(net.risesoft.components.risefile.RiseFile.class);

 

参考文章:

http://hi.baidu.com/zuotong05/blog/item/273eb435bb1bf61091ef3940.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值