2

ColdFusion 9 と Ehcache を使用しています

Ehcache はかなりうまく機能していましたが、マシンを再インストールしてEhcache.Cache.putから、特定の要素での作業を拒否しましたが、他の多くの要素で作業しています。

Cache.put例外をスローせず、戻るまでに約 4 秒かかります。キャッシュに入れようとしている要素は ColdFusion コンポーネントで、わずか 7ko 程度です。シリアル化は使用しません。

キャッシュ構成は次のとおりです。

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
         maxBytesLocalHeap="300m">
         
<sizeOfPolicy maxDepth="99999999" maxDepthExceededBehavior="continue"/>

<defaultCache 
    eternal="false" 
    timeToIdleSeconds="300" 
    timeToLiveSeconds="1200" 
    overflowToDisk="false"
    statistics="true">

に変更しました

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd"
    maxEntriesLocalHeap="900">

<defaultCache 
    eternal="false" 
    timeToIdleSeconds="300" 
    timeToLiveSeconds="1200" 
    overflowToDisk="false"
    statistics="true"
    maxEntriesLocalHeap="100"> 

そして、これはうまくいきます!maxBytesLocalHeapaからmaxEntriesLocalHeapconfigに変更すると違いが生まれます! おそらく、内部サイズの計算が機能していないと思います。を使用maxEntriesLocalHeapするとサイズの計算が不要になるため、新しい構成で機能します。

なぜ:

  1. 特定の 1 つの要素だけでCache.put作業していませんか?maxBytesLocalHeap
  2. 例外なし?
  3. Cache.put関数は4秒かかりますか?
  4. この問題は、真新しいマシンの再インストールで発生しますか?

手がかりがあれば教えてください。本当に に戻す必要がありmaxBytesLocalHeapます。

PS:

  • アプリケーションは、JDK 1.6、MachII、Hibernate、および ColdSpring も使用します。
4

2 に答える 2

1

ColdFusion 要素の Ehcache サイジングが深すぎて、ColdFusion フレームワーク オブジェクトなどのすべての Java ベース オブジェクトを処理します...

フィルターを設定して問題を解決しました。net.sf.ehcache.sizeof.filterサイジング エンジンが無視する FQCN またはフィールドを含むテキスト ファイルの場所を指すシステム プロパティを使用します。ソース: http://forums.terracotta.org/forums/posts/list/6371.page

次のような引数net.sf.ehcache.sizeof.filterで Java VM を起動して設定します。-D

-D net.sf.ehcache.sizeof.filter=/My/Path/To/File.config

私のフィルター構成ファイルには次のものが含まれています。

coldfusion.runtime.NeoPageContext
coldfusion.runtime.CfJspPage
coldfusion.monitor.memory.MemoryTrackable
coldfusion.monitor.sql.QueryStat
coldfusion.monitor.memory.MemoryTrackerProxy
javax.servlet.ServletContext
于 2013-03-15T00:48:48.057 に答える