4

私は最近 CFCACHE を使用して、cold fusion 9 サーバーにページ キャッシングを実装しました。

ただし、負荷がかかっている状態で (自動リンク チェッカーを実行している)、次のようなエラーが報告されています。

私は、cfcache はスレッド セーフであり、追加のコードなしでこれを処理できると考えていました。関連する場合は、application.cfc 内の「OnRequest」内で呼び出しています。私には、これはおそらく 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 キャッシュのソースを調べてみようと思います!

4

1 に答える 1