[22 mars 2012 12:29:56,091] DEBUG com.mchange.v2.resourcepool.BasicResourcePool [“http-apr-8080”-exec-4] acquire test — pool is already maxed out. [managed: 20; max: 20]
[22 mars 2012 12:29:56,091] DEBUG com.mchange.v2.resourcepool.BasicResourcePool [“http-apr-8080”-exec-4] awaitAvailable(): com.mchange.v2.c3p0.impl.NewPooledConnection@15cc604
[22 mars 2012 12:29:56,091] DEBUG com.mchange.v2.resourcepool.BasicResourcePool [“http-apr-8080”-exec-4] trace com.mchange.v2.resourcepool.BasicResourcePool@6b0524 [managed: 20,unused: 0,excluded: 0] (e.g. com.mchange.v2.c3p0.impl.NewPooledConnection@15cc604)
这是数据源配置:
<!-- Local DataSource that works in any environment --> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"> <property name="driverClass" value="${database.driver}"/> <property name="jdbcUrl" value="${database.url}"/> <property name="user" value="${database.user}"/> <property name="password" value="${database.password}"/> <!--<property name="connectionCustomizerClassName" value="org.xxx.webapp.common.persistence.WatchConnectionCustomizer"/>--> <property name="maxStatements" value="500"/> <property name="maxIdleTime" value="1800"/> <property name="maxPoolSize" value="100"/> <property name="minPoolSize" value="2"/> <property name="initialPoolSize" value="2"/> <property name="acquireIncrement" value="3"/> <property name="idleConnectionTestPeriod" value="3000"/> </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionfactorybean" > <property name="hibernateProperties"> <props> <prop key="hibernate.dialect">${hibernate.dialect}</prop> <prop key="hibernate.show_sql">false</prop> <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop> <prop key="hibernate.connection.autocommit">${hibernate.connection.autocommit}</prop> <prop key="hibernate.transaction.auto_close_session">${hibernate.transaction.auto_close_session}</prop> <prop key="hibernate.connection.release_mode">${hibernate.connection.release_mode}</prop> <prop key="hibernate.bytecode.use_reflection_optimizer">${hibernate.bytecode.use_reflection_optimizer}</prop> <prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop> <prop key="hibernate.cache.use_query_cache">true</prop> <prop key="hibernate.cache.use_second_level_cache">true</prop> <prop key="hibernate.cache.region.factory_class">net.sf.ehcache.hibernate.EhCacheRegionFactory</prop> </props> </property> <property name="annotatedClasses"> <list> ... </list> </property> <property name="dataSource"> <ref bean="dataSource" /> </property> </bean> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"> <ref bean="sessionFactory" /> </property> </bean>
这是我们的通用Dao
public class GenericDAO<T,PK extends Serializable> extends HibernateDaoSupport implements IGenericDAO<T,PK> { private Class<T> clazz; private Logger logger = Logger.getLogger(GenericDAO.class); private static Session session; public GenericDAO(Class<T> clazz) { this.clazz = clazz; } public void refresh(T instancetoRefresh) throws DataAccessException { getHibernateTemplate().refresh(instancetoRefresh); //getCurrentSession().refresh(instancetoRefresh); } public void saveOrUpdate(T instancetoSaveOrUpdate) throws DataAccessException { //getCurrentSession().saveOrUpdate(instancetoSaveOrUpdate); getHibernateTemplate().saveOrUpdate(instancetoSaveOrUpdate); } public void persist(T instancetoPersist) throws DataAccessException { getHibernateTemplate().persist(instancetoPersist); //getCurrentSession().persist(instancetoPersist); } @SuppressWarnings("unchecked") public T merge(T instancetoMerge) throws DataAccessException { T instanceMerged = (T) getHibernateTemplate().merge(instancetoMerge); //T instanceMerged = (T) getCurrentSession().merge(instancetoMerge); return instanceMerged; } @SuppressWarnings("unchecked") public PK save(T newInstance) throws DataAccessException { return (PK) getHibernateTemplate().save(newInstance); //return (PK) getCurrentSession().save(newInstance); } public void delete(T persistentObject) throws DataAccessException { getHibernateTemplate().delete(persistentObject); //getCurrentSession().delete(persistentObject); } @SuppressWarnings("unchecked") public T load(PK id) { return (T) getHibernateTemplate().get(clazz,id); //return (T) getCurrentSession().get(clazz,id); } public void update(T transientObject) throws DataAccessException { //getCurrentSession().update(transientObject); getHibernateTemplate().update(transientObject); } @SuppressWarnings("unchecked") public List<T> loadAll() throws DataAccessException { //Session session = this.getCurrentSession(); //return session.createquery("from " + clazz.getName()).list(); return getHibernateTemplate().loadAll(clazz); } }
提前致谢.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。