private void closeSessionFactory(SessionFactory factory) { if(factory instanceof SessionFactoryImpl) { SessionFactoryImpl sf = (SessionFactoryImpl)factory; ConnectionProvider conn = sf.getConnectionProvider(); if(conn instanceof C3P0ConnectionProvider) { ((C3P0ConnectionProvider)conn).close(); } } factory.close(); }
SessionFactoryImpl impl = (SessionFactoryImpl) sessionFactory; C3P0ConnectionProvider provider = (C3P0ConnectionProvider) impl.getConnectionProvider(); provider.close();
HibernateEntityManagerFactory hibernateEntityManagerFactory = ((EntityManagerImpl) entityManager).getFactory(); SessionFactoryImpl sessionFactoryImpl = (SessionFactoryImpl) hibernateEntityManagerFactory.getSessionFactory(); C3P0ConnectionProvider c3P0ConnectionProvider = (C3P0ConnectionProvider) sessionFactoryImpl.getConnectionProvider(); Connection connection = c3P0ConnectionProvider.getConnection();
SessionFactoryImpl factory = (SessionFactoryImpl) session.getSessionFactory(); // or directly cast the sessionFactory DatasourceConnectionProviderImpl provider = (DatasourceConnectionProviderImpl)factory.getConnectionProvider(); DataSource dataSource = provider.getDataSource();
private static boolean closeSessionFactoryIfC3P0ConnectionProvider(SessionFactory factory) { boolean done = false; if(factory instanceof SessionFactoryImpl) { SessionFactoryImpl sf = (SessionFactoryImpl)factory; ConnectionProvider conn = sf.getConnectionProvider(); if(conn instanceof C3P0ConnectionProvider) { ((C3P0ConnectionProvider)conn).close(); try { Thread.sleep(2000); //Let give it time...it is enough...probably } catch (InterruptedException e) { e.printStackTrace(); } done = true; } factory.close(); } return done; }
private void closeSessionFactory(SessionFactory factory) { if(factory instanceof SessionFactoryImpl) { SessionFactoryImpl sf = (SessionFactoryImpl)factory; ConnectionProvider conn = sf.getConnectionProvider(); conn.close(); } factory.close(); }
/** * Allows to shut down the hibernate configuration Closing all pools and connections * * @param context * @throws HibernateException */ public void shutdownHibernate(XWikiContext context) throws HibernateException { Session session = getSession(context); preCloseSession(session); closeSession(session); if (getSessionFactory() != null) { ((SessionFactoryImpl) getSessionFactory()).getConnectionProvider().close(); } }