I'm working on a DD4T content delivery application utilizing grails. The app is fully functioning with the exception of caching. The app is using all of the out-of-the-box dd4t libraries unaltered and I retrieve pages with a grails service calling the GenericPageFactory.findPageByUrl() method.
The first odd behavior I'm seeing is caching with the ObjectCache turned off. If I make changes to a page and republish, I still get back the old version. I have TRACE logging turned on for the org.dd4t package and an interesting log snippet I get back
DEBUG impl.GenericPageFactory - Page retrieved in 0 ms
is seen if I try to reload the page in the browser. I also get the same behavior even when I totally unpublish the page. I should get an error for the page not being found in this situation.
I'm autowiring the Generic page factory with the following providers
cacheProvider(org.dd4t.providers.impl.BrokerCacheProvider)
pageProvider(org.dd4t.providers.impl.BrokerPageProvider)
Even with ObjectCache disabled in my storage_conf is there something in these providers preventing the page from being read from the Broker every time?
The second and more important issue is dealing with the Cache Channel Service (referred to CCS for the remainder of the post). I'm using a .net httpUpload deployer. I've turned on TRACE logging for com.tridion.cache in both the deployer and the grails app.
Both the deployer and the app seem to be connecting fine to the CCS with the RMIConnector. The issue I'm seeing is that in the app, with the ObjectCache enabled, is that nothing is removed from the cache when I publish a change for a page.
In the app I see logging showing the LRUPolicy doing it's job and placing everything in the cache and a hearbeat type message for the interaction with CCS every minute.
TRACE cache.CacheChannel - Item removed from event queue, notifying everyone
After publishing a change I see no mention of removing anything from the cache. The only way I saw cache flushed was by stopping the CCS briefly to force all clients to flush their caches.
Looking at the Live Content Docs, I don't see any other configuration than the RemoteSynchronization node in the cd_storage_conf. Is there anything else anyone can think of that I might be missing here?