问题:
附件控件在使用一段时间后,出现“保存文件失败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