I've got a windows service hosting a WCF service running on machine A. It retrieves objects from machine B running Appfabric where the actual objects are stored. Machine B has 2 regions, "Articles" and "TestArticles". The live application uses Articles and my test program uses TestArticles.
It has been running for six months without problems but now suddenly the live application starts returning null for some objects until the service is restarted and all objects are cached again. Then it runs for a few hours and null's are being returned again. Eviction and TTL is not used so objects should stay in there forever. The only things I can think of is that the Appfabric server's memory is almost full. Only 43MB of 12GB is free!
So what I would like to know is what happens when an Appfabric server's memory is full and I try to cache more objects in the TestArticles region. They succeed but does Appfabric throw out objects from Articles then?
The Eviction Troubleshooting page has this to say:
The Expiration and Eviction page also says:
So, when your server runs out of memory, you should see LRU eviction.
There is no way to set the eviction policy per-region, so you would be better off either using different servers for live and test: or, if that isn't an option, create two caches - one for live and one for test - and set the test cache to evict.