c3p0连接mysql不关闭_java – c3p0连接池没有关闭连接

这篇博客讨论了一个使用C3P0 0.9.1.2、Hibernate 3.2.1.ga和Spring 2.5.5的应用程序中遇到的问题,即数据库连接没有自动关闭。日志显示资源池已满,无法获取新的连接。博主提供了数据源配置和通用DAO的实现,并寻求解决方案。
摘要由CSDN通过智能技术生成

我有一个使用c3p0 0.9.1.2,hibernate 3.2.1.ga和

spring 2.5.5.问题是数据库连接没有自行关闭.这是日志:

[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)

这是数据源配置:

class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" >

${hibernate.dialect}

false

${hibernate.hbm2ddl.auto}

${hibernate.connection.autocommit}

${hibernate.transaction.auto_close_session}

${hibernate.connection.release_mode}

${hibernate.bytecode.use_reflection_optimizer}

org.hibernate.cache.EhCacheProvider

true

true

net.sf.ehcache.hibernate.EhCacheRegionFactory

...

class="org.springframework.orm.hibernate3.HibernateTransactionManager">

这是我们的通用Dao

public class GenericDAO extends HibernateDaoSupport

implements IGenericDAO {

private Class clazz;

private Logger logger = Logger.getLogger(GenericDAO.class);

private static Session session;

public GenericDAO(Class 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 loadAll() throws DataAccessException {

//Session session = this.getCurrentSession();

//return session.createQuery("from " + clazz.getName()).list();

return getHibernateTemplate().loadAll(clazz);

}

}

提前致谢.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值