Announcement Announcement Module
Collapse
No announcement yet.
EhCache issue using Spring Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • EhCache issue using Spring

    I have a project that I am using a persistent cache on (elements live forever, persisted to disk and reloads from disk when the app restarts). I have the caching piece working fine as well as disk persistence (I can see the files being written to the disk). The issue I'm having is getting EhCache to reload the data from disk when I reload the app. While I'm using this in a grails application, the classes used for caching are from the core Spring library which is why I posted it here. My questions specifically are:
    1. What am I missing with my configuration?
    2. What can I do to debug the files being written to disk (to see if there is an issue with shutdown preventing it from being reloaded)?


    My configuration is as follows:

    ehcache.xml
    Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <ehcache>
         <!-- This path is for development only...I'm not rebooting or anything between stop and start so the files are still there -->
        <diskStore path="/tmp"/>
    
        <defaultCache maxElementsInMemory="1000" 
                      eternal="false" 
                      timeToIdleSeconds="120" 
                      timeToLiveSeconds="120" 
                      overflowToDisk="false"/>
    
        <cache name="grails.plugin.persistent_cache.default"
    		maxElementsInMemory="500" eternal="true"
            overflowToDisk="true"
            diskPersistent="true" diskExpiryThreadIntervalSeconds="1"
            memoryStoreEvictionPolicy="LFU" />
    </ehcache>
    web.xml
    Code:
    <web-app xmlns="http://java.sun.com/xml/ns/javaee" metadata-complete="true" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    	<display-name>/someapplication-1.0-SNAPSHOT</display-name>
    	<context-param>
    		<param-name>contextConfigLocation</param-name>
    		<param-value>/WEB-INF/applicationContext.xml</param-value>
    	</context-param>
    	<context-param>
    		<param-name>webAppRootKey</param-name>
    		<param-value>someapplication-1.0-SNAPSHOT</param-value>
    	</context-param>
    	<context-param>
    		<param-name>sample</param-name>
    		<param-value>Sample Value</param-value>
    	</context-param>
    	<filter>
    		<filter-name>springSecurityFilterChain</filter-name>
    		<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    	</filter>
    	<filter>
    		<filter-name>sitemesh</filter-name>
    		<filter-class>org.codehaus.groovy.grails.web.sitemesh.GrailsPageFilter</filter-class>
    	</filter>
    	<filter>
    		<filter-name>DeclaredResourcesPluginFilter</filter-name>
    		<filter-class>org.grails.plugin.resource.ProcessingFilter</filter-class>
    	</filter>
    	<filter>
    		<filter-name>AdHocResourcesPluginFilter</filter-name>
    		<filter-class>org.grails.plugin.resource.ProcessingFilter</filter-class>
    		<init-param>
    			<param-name>adhoc</param-name>
    			<param-value>true</param-value>
    		</init-param>
    	</filter>
    	<filter>
    		<filter-name>charEncodingFilter</filter-name>
    		<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
    		<init-param>
    			<param-name>targetBeanName</param-name>
    			<param-value>characterEncodingFilter</param-value>
    		</init-param>
    		<init-param>
    			<param-name>targetFilterLifecycle</param-name>
    			<param-value>true</param-value>
    		</init-param>
    	</filter>
    	<filter>
    		<filter-name>urlMapping</filter-name>
    		<filter-class>org.codehaus.groovy.grails.web.mapping.filter.UrlMappingsFilter</filter-class>
    	</filter>
    	<filter>
    		<filter-name>hiddenHttpMethod</filter-name>
    		<filter-class>org.codehaus.groovy.grails.web.filters.HiddenHttpMethodFilter</filter-class>
    	</filter>
    	<filter>
    		<filter-name>grailsWebRequest</filter-name>
    		<filter-class>org.codehaus.groovy.grails.web.servlet.mvc.GrailsWebRequestFilter</filter-class>
    	</filter>
    	<filter-mapping>
    		<filter-name>charEncodingFilter</filter-name>
    		<url-pattern>/*</url-pattern>
    	</filter-mapping>
    	<filter-mapping>
    		<filter-name>DeclaredResourcesPluginFilter</filter-name>
    		<url-pattern>/static/*</url-pattern>
    	</filter-mapping>
    	<filter-mapping>
    		<filter-name>AdHocResourcesPluginFilter</filter-name>
    		<url-pattern>/images/*</url-pattern>
    	</filter-mapping>
    	<filter-mapping>
    		<filter-name>AdHocResourcesPluginFilter</filter-name>
    		<url-pattern>/css/*</url-pattern>
    	</filter-mapping>
    	<filter-mapping>
    		<filter-name>AdHocResourcesPluginFilter</filter-name>
    		<url-pattern>/js/*</url-pattern>
    	</filter-mapping>
    	<filter-mapping>
    		<filter-name>AdHocResourcesPluginFilter</filter-name>
    		<url-pattern>/plugins/*</url-pattern>
    	</filter-mapping>
    	<filter-mapping>
    		<filter-name>hiddenHttpMethod</filter-name>
    		<url-pattern>/*</url-pattern>
    		<dispatcher>FORWARD</dispatcher>
    		<dispatcher>REQUEST</dispatcher>
    	</filter-mapping>
    	<filter-mapping>
    		<filter-name>grailsWebRequest</filter-name>
    		<url-pattern>/*</url-pattern>
    		<dispatcher>FORWARD</dispatcher>
    		<dispatcher>REQUEST</dispatcher>
    		<dispatcher>ERROR</dispatcher>
    	</filter-mapping>
    	<filter-mapping>
    		<filter-name>springSecurityFilterChain</filter-name>
    		<url-pattern>/*</url-pattern>
    		<dispatcher>ERROR</dispatcher>
    		<dispatcher>FORWARD</dispatcher>
    		<dispatcher>REQUEST</dispatcher>
    	</filter-mapping>
    	<filter-mapping>
    		<filter-name>sitemesh</filter-name>
    		<url-pattern>/*</url-pattern>
    		<dispatcher>REQUEST</dispatcher>
    		<dispatcher>ERROR</dispatcher>
    	</filter-mapping>
    	<filter-mapping>
    		<filter-name>urlMapping</filter-name>
    		<url-pattern>/*</url-pattern>
    		<dispatcher>FORWARD</dispatcher>
    		<dispatcher>REQUEST</dispatcher>
    	</filter-mapping>
    	<listener>
    		<listener-class>org.codehaus.groovy.grails.plugins.log4j.web.util.Log4jConfigListener</listener-class>
    	</listener>
    	<listener>
    		<listener-class>org.codehaus.groovy.grails.web.context.GrailsContextLoaderListener</listener-class>
    	</listener>
    	<listener>
    		<listener-class>net.sf.ehcache.constructs.web.ShutdownListener</listener-class>
    	</listener>
    	<servlet>
    		<servlet-name>grails</servlet-name>
    		<servlet-class>org.codehaus.groovy.grails.web.servlet.GrailsDispatcherServlet</servlet-class>
    		<load-on-startup>1</load-on-startup>
    	</servlet>
    	<servlet>
    		<servlet-name>gsp</servlet-name>
    		<servlet-class>org.codehaus.groovy.grails.web.pages.GroovyPagesServlet</servlet-class>
    	</servlet>
    	<servlet>
    		<servlet-name>grails-errorhandler</servlet-name>
    		<servlet-class>org.codehaus.groovy.grails.web.servlet.ErrorHandlingServlet</servlet-class>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>gsp</servlet-name>
    		<url-pattern>*.gsp</url-pattern>
    	</servlet-mapping>
    	<servlet-mapping>
    		<servlet-name>grails-errorhandler</servlet-name>
    		<url-pattern>/grails-errorhandler</url-pattern>
    	</servlet-mapping>
    	<servlet-mapping>
    		<servlet-name>grails</servlet-name>
    		<url-pattern>*.dispatch</url-pattern>
    	</servlet-mapping>
    	<welcome-file-list>
    		<welcome-file>index.html</welcome-file>
    		<welcome-file>index.jsp</welcome-file>
    		<welcome-file>index.gsp</welcome-file>
    	</welcome-file-list>
    	<error-page>
    		<error-code>500</error-code>
    		<location>/grails-errorhandler</location>
    	</error-page>
    	<jsp-config>
    		<taglib>
    			<taglib-uri>http://java.sun.com/jsp/jstl/core</taglib-uri>
    			<taglib-location>/WEB-INF/tld/c.tld</taglib-location>
    		</taglib>
    		<taglib>
    			<taglib-uri>http://java.sun.com/jsp/jstl/fmt</taglib-uri>
    			<taglib-location>/WEB-INF/tld/fmt.tld</taglib-location>
    		</taglib>
    		<taglib>
    			<taglib-uri>http://www.springframework.org/tags</taglib-uri>
    			<taglib-location>/WEB-INF/tld/spring.tld</taglib-location>
    		</taglib>
    		<taglib>
    			<taglib-uri>http://grails.codehaus.org/tags</taglib-uri>
    			<taglib-location>/WEB-INF/tld/grails.tld</taglib-location>
    		</taglib>
    	</jsp-config>
    </web-app>
    bean configuration in grails
    Code:
    ...
    	cacheManager(org.springframework.cache.ehcache.EhCacheManagerFactoryBean) {
    		cacheManagerName = 'Default Cache Manager'
    	}
    	
    	defaultCache(org.springframework.cache.ehcache.EhCacheFactoryBean) {
    		cacheManager = cacheManager
    		cacheName = "grails.plugin.persistent_cache.default"
    	}
    ...
    Last edited by mminella; Mar 1st, 2012, 01:31 PM.
Working...
X