HibernateException:连接太多,使用c3p0
我使用c3p0
创建了hibernate应用程序来访问我的数据库,
这是我的hibernate.cfg.xml ,
true org.hibernate.dialect.MySQLDialect com.mysql.jdbc.Driver jdbc:mysql://localhost:3306/example ****** 5 20 3000 50 300 true SELECT 1 *******
这是我的HibernateUtil文件。 我把它命名为SessionFactoryBuilder.java ,
import org.hibernate.SessionFactory; import org.hibernate.boot.registry.StandardServiceRegistryBuilder; import org.hibernate.cfg.Configuration; public class SessionFactoryBuilder { private static SessionFactoryBuilder instance; private static SessionFactory sessionFactory; private SessionFactoryBuilder() { buildConfig(); System.out.println("hehehehe"); } private static void buildConfig() { Configuration configuration = new Configuration().configure(); StandardServiceRegistryBuilder builder = new StandardServiceRegistryBuilder() .applySettings(configuration.getProperties()); sessionFactory = configuration.buildSessionFactory(builder.build()); } public static SessionFactoryBuilder getInstance() { if(instance == null) { instance = new SessionFactoryBuilder(); } return instance; } public SessionFactory getSessionFactory() { return sessionFactory; } }
当我使用这个SessionFactoryBuilder
访问我的数据库时,我得到了“太多连接” 。
这是我如何使用它的一个例子,
ReportTypeService reportTypeService = new ReportTypeService(); List list = reportTypeService.getAllReportTypes(); for(int i=0;i<list.size();i++){ out.print("Type - "+list.get(i).getType()); }
这不是一直存在的。但是当它出现时,与数据库的连接已经消失。
有什么想法吗?
- 在服务器上部署一段时间后无法与数据库连接
- Jetty 7 + MySQL Config
- Hibernate:尝试获取锁定时发现死锁
- 我的tomcat启动时C3P0 APPARENT DEADLOCK
- c3p0说 – “java.lang.Exception:DEBUG ONLY:过期资源检出堆栈跟踪”启动一个hibernate事务
- Java Hibernate / C3P0错误:“无法获取连接元数据。 客户端尝试签出连接的尝试已经超时。“
- c3p0如何关闭所有数据库连接并在需要时重新打开它们?
- 抢先并优雅地检查org.hibernate.Session是否仍然连接(通过c3p0)
- 如何为具有多个数据源的grails 2.X应用程序配置c3p0?