Occaisionally I will get the following error in ColdBo. It's on my
development box, and I have all cache options set to false. Any idea
what would be causing this issue?
Framework Initialization/Configuration Exception
Error Type: Framework.InterceptorService.InterceptorCantBeCached : [N/
A]
Error Messages: The interceptor could not be cached, either the cache
is full, the threshold has been reached or we are out of memory.
Please check your cache limits, try increasing them or verify your
server memory
Actually "Error Messages" is self explanatory :),
you can control the number of objects for cache in "coldbox.xml.cfm"
and also increase memory for coldfusion in jvm.config
My confusion is that I have all caching that I could find turned off. What
am I failing to turn off that causing caching to still occur? Also, How can
I ensure that we don't max out and fail in production, is there some way to
tell the application to age out old cached objects instead of causing the
entire application to fail?
Hi Christine, the problem is the following. INterceptors are cached by default as singletons, no matter what, because they are part of the application flow. The ColdBox Cache is configured using the elements in the config. The error you are getting is because, your JVM had no memory for objects to be stored on due to the threshold in the cache configuration. Look at the following setting:
If that percentage is too high, then objects will never be cached. However, if you really do not want to protect the JVM, then set this to 0 and it will always cache. I recommend however, always having a floor value here of 1-3%.