Mercurial > dive4elements > gnv-client
diff geo-backend/src/main/java/de/intevation/gnv/geobackend/base/query/CachingQueryExecutorFactory.java @ 542:f0b6d0e2a0f6
Small fixes for Ehcache based SQL results caching.
geo-backend/trunk@463 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Sat, 19 Dec 2009 14:45:21 +0000 |
parents | 3cbf11c67fdc |
children | 8b442223741c |
line wrap: on
line diff
--- a/geo-backend/src/main/java/de/intevation/gnv/geobackend/base/query/CachingQueryExecutorFactory.java Fri Dec 18 16:13:52 2009 +0000 +++ b/geo-backend/src/main/java/de/intevation/gnv/geobackend/base/query/CachingQueryExecutorFactory.java Sat Dec 19 14:45:21 2009 +0000 @@ -6,6 +6,7 @@ import net.sf.ehcache.Element; import net.sf.ehcache.CacheManager; +import org.apache.log4j.Logger; import de.intevation.gnv.geobackend.base.Result; @@ -19,9 +20,12 @@ public static final String QUERY_EXECUTOR_FACTORY = "caching.query.executor.config"; public static final String CACHE_NAME = "sql.cache"; + private static Logger log = Logger.getLogger(CachingQueryExecutorFactory.class); + protected CacheManager manager; public CachingQueryExecutorFactory() { + log.info("using SQL cache"); String configFile = System.getProperty(QUERY_EXECUTOR_FACTORY); manager = configFile != null ? new CacheManager(configFile) @@ -35,16 +39,26 @@ public Collection<Result> cachedResults(String query) { Cache cache = manager.getCache(CACHE_NAME); Element element = cache.get(query); + if (log.isDebugEnabled()) { + log.debug("found results in SQL cache: " + (element != null)); + } return element != null ? (Collection<Result>)element.getObjectValue() : null; } - public void cacheResult(String query, Collection<Result> results) { + public void cacheResults(String query, Collection<Result> results) { + log.debug("store results in SQL cache"); Cache cache = manager.getCache(CACHE_NAME); cache.put(new Element(query, results)); } }; } + + public void shutdown() { + log.info("shutting down SQL cache"); + manager.getCache(CACHE_NAME).flush(); + manager.shutdown(); + } } // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8: