2014-12-10 1 views
4

Недавно я использовал CFCACHE для реализации кэширования страниц на сервере cold fusion 9.Кэш уже существует с ошибкой CFCACHE

Однако я получаю ошибки сообщенные под нагрузкой (работает автоматизированной проверки ссылок), как: «Кэш A95C0BF9E9BFBC6F151F03E939D2D2D6TEMPLATE уже существует»

Я думал, что cfcache будет поточно, и справиться с этим без какого-либо дополнительного кода , Если это актуально, я вызываю его внутри «OnRequest» в моем приложении application.cfc. Для меня это похоже, возможно, это ошибка Cold Fusion, но также возможно, что я злоупотребляю механизмом CFCACHE каким-то образом.

<!--- setup caching if enabled ---> 
<cfif getConfigValue('page_cache') eq "true" and not application.security.isLoggedOn()> 
    <cfcache timespan="#createTimeSpan(0,0,10,0)#" directory="#application.pagecachepath#" usequerystring="true" > 
</cfif> 
<!--- Call request handling and rendering functions ---> 
<cfcontent reset="yes" type="text/html"><cfoutput>#html.render()#</cfoutput> 
<cfif getConfigValue('page_cache') eq "true" and not application.security.isLoggedOn()><!-- content generated at #Now()#--></cfif> 

Трассировка стека является:

net.sf.ehcache.ObjectExistsException: Cache A95C0BF9E9BFBC6F151F03E939D2D2D6TEMPLATE already exists at 
    net.sf.ehcache.CacheManager.addCacheNoCheck(CacheManager.java:920) at 
    net.sf.ehcache.CacheManager.addCache(CacheManager.java:915) at 
    net.sf.ehcache.CacheManager.addCache(CacheManager.java:870) at 
    coldfusion.tagext.io.cache.ehcache.GenericEhcache.createCache(GenericEhcache.java:317) at 
    coldfusion.tagext.io.cache.ehcache.GenericEhcache._getCache(GenericEhcache.java:301) at 
    coldfusion.tagext.io.cache.ehcache.GenericEhcache.getCache(GenericEhcache.java:268) at 
    coldfusion.tagext.io.cache.ehcache.GenericEhcache.get(GenericEhcache.java:72) at 
    coldfusion.tagext.io.cache.CacheTagHelper.checkFromTemplateCache(CacheTagHelper.java:56) at 
    coldfusion.tagext.io.cache.CacheTag.checkTemplatecache(CacheTag.java:695) at 
    coldfusion.tagext.io.cache.CacheTag.doStartTag(CacheTag.java:609) at 
    coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:2722) at cfapplication2ecfc814216694$funcONREQUEST._factor1(C:\inetpub\vhosts\example.org\httpdocs\application.cfc:190) at 
    cfapplication2ecfc814216694$funcONREQUEST.runFunction(C:\inetpub\vhosts\example.org\httpdocs\application.cfc:187) at 
    coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:472) at 
    coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:405) at 
    coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke(UDFMethod.java:368) at 

Отсутствуют какие-либо идеи получше, я предполагаю, что я начну смотреть в источник кэш-EH!

ответ

3

состояние гонки в coldfusion.tagext.io.cache.ehcache.GenericEhcache

Похоже, он существует в обоих CF9 & 10 (на основе исходного кода)

ваше единственное решение, чтобы положить cflock куда-нибудь исправить это самостоятельно.