teichmann@5844: /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde teichmann@5844: * Software engineering by Intevation GmbH teichmann@5844: * teichmann@5992: * This file is Free Software under the GNU AGPL (>=v3) teichmann@5844: * and comes with ABSOLUTELY NO WARRANTY! Check out the teichmann@5992: * documentation coming with Dive4Elements River for details. teichmann@5844: */ teichmann@5844: teichmann@5829: package org.dive4elements.river.backend; sascha@3333: sascha@3333: import org.apache.log4j.Logger; sascha@3333: sascha@3333: import org.hibernate.Session; sascha@3333: import org.hibernate.SessionFactory; sascha@3333: sascha@3333: public class SedDBSessionHolder sascha@3333: { sascha@3333: private static Logger log = sascha@3333: Logger.getLogger(SedDBSessionHolder.class); sascha@3333: sascha@3333: public static final ThreadLocal HOLDER = sascha@3333: new ThreadLocal() { sascha@3333: @Override sascha@3333: protected Session initialValue() { sascha@3333: return create(); sascha@3333: } sascha@3333: }; sascha@3333: sascha@3333: private SedDBSessionHolder() { sascha@3333: } sascha@3333: sascha@3333: public synchronized static Session create() { sascha@3333: log.debug("create"); sascha@3333: SessionFactory sessionFactory = sascha@3333: SessionFactoryProvider.getSedDBSessionFactory(); sascha@3333: return sessionFactory.openSession(); sascha@3333: } sascha@3333: sascha@3333: public static Session acquire() { sascha@3333: log.debug("acquire"); sascha@3333: Session session = create(); sascha@3333: HOLDER.set(session); sascha@3333: return session; sascha@3333: } sascha@3333: sascha@3333: public static void release() { sascha@3333: log.debug("release"); sascha@3333: HOLDER.remove(); sascha@3333: } sascha@3333: } sascha@3333: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :